1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/tools/llvm-objdump
Greg McGary 0e7e9c4f85 [llvm-objdump] Exclude __mh_*_header symbols during MachO disassembly
`__mh_(execute|dylib|dylinker|bundle|preload|object)_header` are special symbols whose values hold the VMA of the Mach header to support introspection. They are attached to the first section in `__TEXT`, even though their addresses are outside `__TEXT`, and they do not refer to code.

It is normally harmless, but when the first section of `__TEXT` has no other symbols, `__mh_*_header` is considered by the disassembler when determing function boundaries. Since `__mh_*_header` refers to an address outside `__TEXT`, the boundary determination fails and disassembly quits.

Since `__TEXT,__text` normally has symbols, this bug is obscured. Experiments placing `__stubs` and `__stub_helper` first exposed the bug, since neither has symbols.

Differential Revision: https://reviews.llvm.org/D101786
2021-05-12 06:39:14 -07:00
..
CMakeLists.txt llvm-objdump: refactor SourcePrinter into separate file. NFC. 2021-04-23 10:21:52 +01:00
COFFDump.cpp [llvm-objdump] Use append_range (NFC) 2021-01-26 20:00:19 -08:00
COFFDump.h [llvm-objdump][COFF][NFC] Split format-specific interfaces; add namespace 2020-04-02 18:42:13 -04:00
ELFDump.cpp [llvm-objdump] Improve newline consistency between different pieces of information 2021-05-04 09:56:07 -07:00
ELFDump.h [llvm-objdump][ELF][NFC] Create ELFDump.h 2020-04-23 21:24:37 -04:00
llvm-objdump.cpp [llvm-objdump] Exclude __mh_*_header symbols during MachO disassembly 2021-05-12 06:39:14 -07:00
llvm-objdump.h llvm-objdump: refactor SourcePrinter into separate file. NFC. 2021-04-23 10:21:52 +01:00
MachODump.cpp [llvm-objdump][MachO] Print a newline before lazy bind/bind/weak/exports trie 2021-05-10 09:16:18 -07:00
MachODump.h llvm-objdump: add --rpaths to macho support 2021-04-22 16:01:10 -07:00
ObjdumpOptID.h [llvm-objdump] Add an llvm-otool tool 2021-04-20 08:24:58 -04:00
ObjdumpOpts.td [llvm-objdump] Delete temporary Hexagon workaround options 2021-05-04 11:05:11 -07:00
OtoolOpts.td [llvm-objdump] Add an llvm-otool tool 2021-04-20 08:24:58 -04:00
SourcePrinter.cpp llvm-objdump: refactor SourcePrinter into separate file. NFC. 2021-04-23 10:21:52 +01:00
SourcePrinter.h llvm-objdump: refactor SourcePrinter into separate file. NFC. 2021-04-23 10:21:52 +01:00
WasmDump.cpp [llvm-objdump][Wasm][NFC] Create WasmDump.h 2020-04-14 18:26:24 -04:00
WasmDump.h [llvm-objdump][Wasm][NFC] Create WasmDump.h 2020-04-14 18:26:24 -04:00
XCOFFDump.cpp [llvm-objdump][XCOFF] Print more symbol info in relocation 2020-04-22 13:52:08 +00:00
XCOFFDump.h [llvm-objdump][XCOFF] Print more symbol info in relocation 2020-04-22 13:52:08 +00:00