[llvm-objdump] Add -D and --disassemble-all flags that attempt disassembly on all sections instead of just text sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243041 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Colin LeMahieu
2015-07-23 20:58:49 +00:00
parent 106d75d396
commit ea8050283f
3 changed files with 19 additions and 3 deletions

View File

@@ -70,7 +70,14 @@ llvm::Disassemble("disassemble",
cl::desc("Display assembler mnemonics for the machine instructions"));
static cl::alias
Disassembled("d", cl::desc("Alias for --disassemble"),
cl::aliasopt(Disassemble));
cl::aliasopt(Disassemble));
cl::opt<bool>
llvm::DisassembleAll("disassemble-all",
cl::desc("Display assembler mnemonics for the machine instructions"));
static cl::alias
DisassembleAlld("D", cl::desc("Alias for --disassemble-all"),
cl::aliasopt(DisassembleAll));
cl::opt<bool>
llvm::Relocations("r", cl::desc("Display the relocation entries in the file"));
@@ -837,7 +844,7 @@ static void DisassembleObject(const ObjectFile *Obj, bool InlineRelocs) {
}
for (const SectionRef &Section : Obj->sections()) {
if (!Section.isText() || Section.isVirtual())
if (!DisassembleAll && (!Section.isText() || Section.isVirtual()))
continue;
uint64_t SectionAddr = Section.getAddress();
@@ -1514,6 +1521,8 @@ int main(int argc, char **argv) {
if (InputFilenames.size() == 0)
InputFilenames.push_back("a.out");
if (DisassembleAll)
Disassemble = true;
if (!Disassemble
&& !Relocations
&& !SectionHeaders