diff options
author | Zachary Turner <zturner@google.com> | 2015-02-27 09:15:18 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2015-02-27 09:15:18 +0000 |
commit | db18f5ca76e4e699598867f67a343d0b01e3a054 (patch) | |
tree | c604fbd488cf1c1c3d6af3b392a4b001f5954aaa /llvm/test/DebugInfo/PDB | |
parent | ddc4d085cce9691b70e042dc9e03d795f33225c9 (diff) | |
download | bcm5719-llvm-db18f5ca76e4e699598867f67a343d0b01e3a054.tar.gz bcm5719-llvm-db18f5ca76e4e699598867f67a343d0b01e3a054.zip |
[llvm-pdbdump] Add support for dumping global variables.
llvm-svn: 230744
Diffstat (limited to 'llvm/test/DebugInfo/PDB')
-rw-r--r-- | llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp | 3 | ||||
-rw-r--r-- | llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb | bin | 143360 -> 35840 bytes | |||
-rw-r--r-- | llvm/test/DebugInfo/PDB/pdbdump-flags.test | 34 | ||||
-rw-r--r-- | llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test | 22 |
4 files changed, 34 insertions, 25 deletions
diff --git a/llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp b/llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp index 237913e7221..5479b717cd9 100644 --- a/llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp +++ b/llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp @@ -55,6 +55,9 @@ struct MemberTest { typedef int IntType; typedef A ClassAType; +int g_global_int; +void *g_global_pointer = nullptr; + int main(int argc, char **argv) { // Force symbol references so the linker generates debug info B b; diff --git a/llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb b/llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb Binary files differindex 28832d4090f..53d8a1b31a3 100644 --- a/llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb +++ b/llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb diff --git a/llvm/test/DebugInfo/PDB/pdbdump-flags.test b/llvm/test/DebugInfo/PDB/pdbdump-flags.test index d8d38cb705e..badbf0784b5 100644 --- a/llvm/test/DebugInfo/PDB/pdbdump-flags.test +++ b/llvm/test/DebugInfo/PDB/pdbdump-flags.test @@ -1,32 +1,40 @@ ; RUN: llvm-pdbdump %p/Inputs/empty.pdb | FileCheck %s -check-prefix=NO_ARGS ; RUN: llvm-pdbdump -types %p/Inputs/empty.pdb | FileCheck %s -check-prefix=TYPES ; RUN: llvm-pdbdump -compilands %p/Inputs/empty.pdb | FileCheck %s -check-prefix=COMPILANDS -; RUN: llvm-pdbdump -types -compilands %p/Inputs/empty.pdb | FileCheck %s -check-prefix=BOTH +; RUN: llvm-pdbdump -types -compilands %p/Inputs/empty.pdb | FileCheck %s -check-prefix=MULTIPLE ; Check that neither symbols nor compilands are dumped when neither argument specified. ; NO_ARGS: empty.pdb ; NO_ARGS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0} ; NO_ARGS: Attributes: HasPrivateSymbols -; NO_ARGS-NOT: Dumping compilands -; NO_ARGS-NOT: Dumping symbols +; NO_ARGS-NOT: ---TYPES--- +; NO_ARGS-NOT: ---COMPILANDS--- +; NO_ARGS-NOT: ---GLOBALS--- +; NO_ARGS-NOT: ---SYMBOLS--- -; Check that only symbols are dumped when only -types is specified. +; Check that only types are dumped when only -types is specified. ; TYPES: empty.pdb ; TYPES: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0} ; TYPES: Attributes: HasPrivateSymbols -; TYPES: Dumping types -; TYPES-NOT: Dumping compilands +; TYPES: ---TYPES--- +; TYPES-NOT: ---COMPILANDS--- +; TYPES-NOT: ---GLOBALS--- +; TYPES-NOT: ---SYMBOLS--- ; Check that only compilands are dumped when only -compilands is specified. ; COMPILANDS: empty.pdb ; COMPILANDS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0} ; COMPILANDS: Attributes: HasPrivateSymbols -; COMPILANDS-NOT: Dumping types -; COMPILANDS: Dumping compilands +; COMPILANDS: ---COMPILANDS--- +; COMPILANDS-NOT: ---TYPES--- +; COMPILANDS-NOT: ---GLOBALS--- +; COMPILANDS-NOT: ---SYMBOLS--- ; Check that types and compilands are dumped when both arguments are specified. -; BOTH: empty.pdb -; BOTH: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0} -; BOTH: Attributes: HasPrivateSymbols -; BOTH: Dumping types -; BOTH: Dumping compilands +; MULTIPLE: empty.pdb +; MULTIPLE: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0} +; MULTIPLE: Attributes: HasPrivateSymbols +; MULTIPLE: ---COMPILANDS--- +; MULTIPLE: ---TYPES--- +; MULTIPLE-NOT: ---GLOBALS--- +; MULTIPLE-NOT: ---SYMBOLS--- diff --git a/llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test b/llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test index 5ed65642b7f..a34d46d8db6 100644 --- a/llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test +++ b/llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test @@ -1,8 +1,10 @@ ; RUN: llvm-pdbdump -symbols %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=SYM_FORMAT %s ; RUN: llvm-pdbdump -types %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=TYPES_FORMAT %s ; RUN: llvm-pdbdump -types -class-definitions %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=FULL_CLASS %s +; RUN: llvm-pdbdump -globals %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=GLOBALS %s ; The format is func [0x<rva_start>+<prologue_length> - 0x<rva_end>-<epilogue_length>] +; SYM_FORMAT: ---SYMBOLS--- ; SYM_FORMAT: symbolformat-fpo.obj ; SYM_FORMAT-DAG: func [{{.*}}] (FPO) unsigned __cdecl fpo_func(unsigned n) ; SYM_FORMAT: symbolformat.obj @@ -15,20 +17,10 @@ ; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void A::RegularFunc() ; SYM_FORMAT-DAG: func [{{.*}}] (EBP) virtual void A::VirtualFunc() +; TYPES_FORMAT: ---TYPES--- ; TYPES_FORMAT: Enums ; TYPES_FORMAT-DAG: enum TestEnum ; TYPES_FORMAT-DAG: enum TestEnumClass -; TYPES_FORMAT: Function Signatures -; TYPES_FORMAT-DAG: int __cdecl () -; TYPES_FORMAT-DAG: int __cdecl (int, char**) -; TYPES_FORMAT-DAG: void (A::)() -; TYPES_FORMAT-DAG: void (B::)() -; TYPES_FORMAT-DAG: void (B::)(B&) -; TYPES_FORMAT-DAG: void (B::)() -; TYPES_FORMAT-DAG: B& (B::)(B&) -; TYPES_FORMAT-DAG: void (A::)(A&) -; TYPES_FORMAT-DAG: void (A::)() -; TYPES_FORMAT-DAG: A& (A::)(A&) ; TYPES_FORMAT: Typedefs ; TYPES_FORMAT-DAG: typedef int IntType ; TYPES_FORMAT-DAG: typedef class A ClassAType @@ -36,6 +28,7 @@ ; TYPES_FORMAT-DAG: class A ; TYPES_FORMAT-DAG: class B +; FULL_CLASS: ---TYPES--- ; FULL_CLASS: Classes ; FULL_CLASS-DAG: class A { ; FULL_CLASS: public: @@ -58,4 +51,9 @@ ; FULL_CLASS: data +0x30 float m_float ; FULL_CLASS: data +0x38 double m_double ; FULL_CLASS: data +0x40 void (__cdecl *m_pfn_2_args)(int, double) -; FULL_CLASS: }
\ No newline at end of file +; FULL_CLASS: } + +; GLOBALS: ---GLOBALS--- +; GLOBALS-DAG: func [{{.*}}] (FPO) unsigned __cdecl fpo_func(unsigned n) +; GLOBALS-DAG: data [{{.*}}] static void* g_global_pointer +; GLOBALS-DAG: data [{{.*}}] static int g_global_int |