summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/lit/Modules/build-id-case.yaml2
-rw-r--r--lldb/lit/Modules/compressed-sections.yaml2
-rw-r--r--lldb/lit/Modules/elf-duplicate-section.yaml2
-rw-r--r--lldb/lit/Modules/elf-section-types.yaml2
-rw-r--r--lldb/lit/Modules/lc_version_min.yaml4
-rw-r--r--lldb/lit/Modules/short-build-id.yaml26
-rw-r--r--lldb/tools/lldb-test/lldb-test.cpp30
7 files changed, 50 insertions, 18 deletions
diff --git a/lldb/lit/Modules/build-id-case.yaml b/lldb/lit/Modules/build-id-case.yaml
index bbad5125967..246163ad52a 100644
--- a/lldb/lit/Modules/build-id-case.yaml
+++ b/lldb/lit/Modules/build-id-case.yaml
@@ -2,7 +2,7 @@
# RUN: yaml2obj %s > %t/.build-id/1b/8a73ac238390e32a7ff4ac8ebe4d6a41ecf5c9.debug
# RUN: cd %t
# RUN: llvm-objcopy --strip-all --add-gnu-debuglink=.build-id/1b/8a73ac238390e32a7ff4ac8ebe4d6a41ecf5c9.debug %t/.build-id/1b/8a73ac238390e32a7ff4ac8ebe4d6a41ecf5c9.debug %t/stripped.out
-# RUN: lldb-test module-sections %t/stripped.out | FileCheck %s
+# RUN: lldb-test object-file %t/stripped.out | FileCheck %s
# CHECK: Name: .debug_frame
# CHECK-NEXT: Type: dwarf-frame
diff --git a/lldb/lit/Modules/compressed-sections.yaml b/lldb/lit/Modules/compressed-sections.yaml
index db189248221..c75dc857522 100644
--- a/lldb/lit/Modules/compressed-sections.yaml
+++ b/lldb/lit/Modules/compressed-sections.yaml
@@ -1,6 +1,6 @@
# REQUIRES: zlib
# RUN: yaml2obj %s > %t
-# RUN: lldb-test module-sections --contents %t | FileCheck %s
+# RUN: lldb-test object-file --contents %t | FileCheck %s
--- !ELF
FileHeader:
Class: ELFCLASS32
diff --git a/lldb/lit/Modules/elf-duplicate-section.yaml b/lldb/lit/Modules/elf-duplicate-section.yaml
index 99a76c2e6c9..b4b391cc912 100644
--- a/lldb/lit/Modules/elf-duplicate-section.yaml
+++ b/lldb/lit/Modules/elf-duplicate-section.yaml
@@ -2,7 +2,7 @@
# RUN: yaml2obj %s > %t/.build-id/1b/8a73ac238390e32a7ff4ac8ebe4d6a41ecf5c9.debug
# RUN: cd %t
# RUN: llvm-objcopy --strip-all --add-gnu-debuglink=.build-id/1b/8a73ac238390e32a7ff4ac8ebe4d6a41ecf5c9.debug %t/.build-id/1b/8a73ac238390e32a7ff4ac8ebe4d6a41ecf5c9.debug %t/stripped.out
-# RUN: lldb-test module-sections %t/stripped.out | FileCheck %s
+# RUN: lldb-test object-file %t/stripped.out | FileCheck %s
# Make sure that the debug_frame section is present only once.
# CHECK: Name: .debug_frame
diff --git a/lldb/lit/Modules/elf-section-types.yaml b/lldb/lit/Modules/elf-section-types.yaml
index a8aa5c80a48..64906a9acf8 100644
--- a/lldb/lit/Modules/elf-section-types.yaml
+++ b/lldb/lit/Modules/elf-section-types.yaml
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s > %t
-# RUN: lldb-test module-sections %t | FileCheck %s
+# RUN: lldb-test object-file %t | FileCheck %s
# CHECK: Name: .text
# CHECK-NEXT: Type: code
diff --git a/lldb/lit/Modules/lc_version_min.yaml b/lldb/lit/Modules/lc_version_min.yaml
index 5294ecfcb4d..e79107069f3 100644
--- a/lldb/lit/Modules/lc_version_min.yaml
+++ b/lldb/lit/Modules/lc_version_min.yaml
@@ -1,8 +1,8 @@
# RUN: yaml2obj %s > %t.out
-# RUN: lldb-test symbols %t.out | FileCheck %s
+# RUN: lldb-test object-file %t.out | FileCheck %s
# Test that the deployment target is parsed from the load commands.
-# CHECK: x86_64-apple-macosx10.9.0
+# CHECK: Architecture: x86_64-apple-macosx10.9.0
--- !mach-o
FileHeader:
magic: 0xFEEDFACF
diff --git a/lldb/lit/Modules/short-build-id.yaml b/lldb/lit/Modules/short-build-id.yaml
new file mode 100644
index 00000000000..90781347392
--- /dev/null
+++ b/lldb/lit/Modules/short-build-id.yaml
@@ -0,0 +1,26 @@
+# RUN: yaml2obj %s >%t
+# RUN: lldb-test object-file %t | FileCheck %s
+
+# CHECK: UUID: 333059A4-3CC3-D5F9
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_EXEC
+ Machine: EM_X86_64
+ Entry: 0x0000000000201000
+Sections:
+ - Name: .note.gnu.build-id
+ Type: SHT_NOTE
+ Flags: [ SHF_ALLOC ]
+ Address: 0x0000000000200190
+ AddressAlign: 0x0000000000000004
+ Content: 040000000800000003000000474E5500333059A43CC3D5F9
+ - Name: .text
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ Address: 0x0000000000201000
+ AddressAlign: 0x0000000000000004
+ Content: ''
+...
diff --git a/lldb/tools/lldb-test/lldb-test.cpp b/lldb/tools/lldb-test/lldb-test.cpp
index e4bb5426f9d..c9225f63d30 100644
--- a/lldb/tools/lldb-test/lldb-test.cpp
+++ b/lldb/tools/lldb-test/lldb-test.cpp
@@ -51,14 +51,15 @@ using namespace llvm;
namespace opts {
static cl::SubCommand BreakpointSubcommand("breakpoints",
"Test breakpoint resolution");
-cl::SubCommand ModuleSubcommand("module-sections",
- "Display LLDB Module Information");
+cl::SubCommand ObjectFileSubcommand("object-file",
+ "Display LLDB object file information");
cl::SubCommand SymbolsSubcommand("symbols", "Dump symbols for an object file");
cl::SubCommand IRMemoryMapSubcommand("ir-memory-map", "Test IRMemoryMap");
cl::opt<std::string> Log("log", cl::desc("Path to a log file"), cl::init(""),
cl::sub(BreakpointSubcommand),
- cl::sub(ModuleSubcommand), cl::sub(SymbolsSubcommand),
+ cl::sub(ObjectFileSubcommand),
+ cl::sub(SymbolsSubcommand),
cl::sub(IRMemoryMapSubcommand));
/// Create a target using the file pointed to by \p Filename, or abort.
@@ -85,13 +86,14 @@ static std::string substitute(StringRef Cmd);
static int evaluateBreakpoints(Debugger &Dbg);
} // namespace breakpoint
-namespace module {
+namespace object {
cl::opt<bool> SectionContents("contents",
cl::desc("Dump each section's contents"),
- cl::sub(ModuleSubcommand));
+ cl::sub(ObjectFileSubcommand));
cl::list<std::string> InputFilenames(cl::Positional, cl::desc("<input files>"),
- cl::OneOrMore, cl::sub(ModuleSubcommand));
-} // namespace module
+ cl::OneOrMore,
+ cl::sub(ObjectFileSubcommand));
+} // namespace object
namespace symbols {
static cl::list<std::string> InputFilenames(cl::Positional,
@@ -616,11 +618,11 @@ int opts::symbols::dumpSymbols(Debugger &Dbg) {
return HadErrors;
}
-static int dumpModules(Debugger &Dbg) {
+static int dumpObjectFiles(Debugger &Dbg) {
LinePrinter Printer(4, llvm::outs());
int HadErrors = 0;
- for (const auto &File : opts::module::InputFilenames) {
+ for (const auto &File : opts::object::InputFilenames) {
ModuleSpec Spec{FileSpec(File, false)};
auto ModulePtr = std::make_shared<lldb_private::Module>(Spec);
@@ -634,6 +636,10 @@ static int dumpModules(Debugger &Dbg) {
continue;
}
+ Printer.formatLine("Architecture: {0}",
+ ModulePtr->GetArchitecture().GetTriple().getTriple());
+ Printer.formatLine("UUID: {0}", ModulePtr->GetUUID().GetAsString());
+
size_t Count = Sections->GetNumSections(0);
Printer.formatLine("Showing {0} sections", Count);
for (size_t I = 0; I < Count; ++I) {
@@ -646,7 +652,7 @@ static int dumpModules(Debugger &Dbg) {
Printer.formatLine("VM size: {0}", S->GetByteSize());
Printer.formatLine("File size: {0}", S->GetFileSize());
- if (opts::module::SectionContents) {
+ if (opts::object::SectionContents) {
DataExtractor Data;
S->GetSectionData(Data);
ArrayRef<uint8_t> Bytes = {Data.GetDataStart(), Data.GetDataEnd()};
@@ -841,8 +847,8 @@ int main(int argc, const char *argv[]) {
if (opts::BreakpointSubcommand)
return opts::breakpoint::evaluateBreakpoints(*Dbg);
- if (opts::ModuleSubcommand)
- return dumpModules(*Dbg);
+ if (opts::ObjectFileSubcommand)
+ return dumpObjectFiles(*Dbg);
if (opts::SymbolsSubcommand)
return opts::symbols::dumpSymbols(*Dbg);
if (opts::IRMemoryMapSubcommand)
OpenPOWER on IntegriCloud