brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.3 KiB · 695a909 Raw
176 lines · plain
1# clang-format off2# REQUIRES: lld, x863 4# RUN: llvm-mc -triple=x86_64-windows-msvc --filetype=obj %p/Inputs/inline_sites.s > %t.obj5# RUN: lld-link -debug:full -nodefaultlib -entry:main -base:0x140000000 %t.obj -out:%t.exe6# RUN: %lldb -f %t.exe -s \7# RUN:     %p/Inputs/inline_sites.lldbinit 2>&1 | FileCheck %s8 9# CHECK:      (lldb) image dump line-table a.cpp -v10# CHECK-NEXT: Line table11# CHECK-NEXT: 0x0000000140001000: /tmp/a.cpp:212# CHECK-NEXT: 0x0000000140001004: /tmp/a.h:5, is_start_of_statement = TRUE, is_prologue_end = TRUE13# CHECK-NEXT: 0x000000014000100c: /tmp/a.h:614# CHECK-NEXT: 0x0000000140001010: /tmp/a.h:715# CHECK-NEXT: 0x0000000140001018: /tmp/a.h:916# CHECK-NEXT: 0x000000014000101c: /tmp/b.h:5, is_start_of_statement = TRUE, is_prologue_end = TRUE17# CHECK-NEXT: 0x0000000140001022: /tmp/b.h:618# CHECK-NEXT: 0x0000000140001026: /tmp/b.h:719# CHECK-NEXT: 0x000000014000102a: /tmp/c.h:5, is_start_of_statement = TRUE, is_prologue_end = TRUE20# CHECK-NEXT: 0x0000000140001031: /tmp/c.h:621# CHECK-NEXT: 0x0000000140001035: /tmp/c.h:722# CHECK-NEXT: 0x0000000140001039: /tmp/a.cpp:323# CHECK-NEXT: 0x000000014000103d: /tmp/a.cpp:424# CHECK-NEXT: 0x000000014000103f: /tmp/a.h:2025# CHECK-NEXT: 0x0000000140001044: /tmp/a.h:826# CHECK-NEXT: 0x0000000140001046: /tmp/a.cpp:3, is_terminal_entry = TRUE27 28#CHECK: (lldb) b a.h:529#CHECK: Breakpoint 1: where = {{.*}}`main + 4 [inlined] Namespace1::foo at a.h:5, address = 0x000000014000100430#CHECK: (lldb) b a.h:631#CHECK: Breakpoint 2: where = {{.*}}`main + 12 [inlined] Namespace1::foo + 8 at a.h:6, address = 0x000000014000100c32#CHECK: (lldb) b a.h:733#CHECK: Breakpoint 3: where = {{.*}}`main + 16 [inlined] Namespace1::foo + 12 at a.h:7, address = 0x000000014000101034#CHECK: (lldb) b a.h:835#CHECK: Breakpoint 4: where = {{.*}}`main + 68 [inlined] Namespace1::foo + 5 at a.h:8, address = 0x000000014000104436#CHECK: (lldb) b a.h:937#CHECK: Breakpoint 5: where = {{.*}}`main + 24 [inlined] Namespace1::foo + 20 at a.h:9, address = 0x000000014000101838#CHECK: (lldb) b b.h:539#CHECK: Breakpoint 6: where = {{.*}}`main + 28 [inlined] Class1::bar at b.h:5, address = 0x000000014000101c40#CHECK: (lldb) b b.h:641#CHECK: Breakpoint 7: where = {{.*}}`main + 34 [inlined] Class1::bar + 6 at b.h:6, address = 0x000000014000102242#CHECK: (lldb) b b.h:743#CHECK: Breakpoint 8: where = {{.*}}`main + 38 [inlined] Class1::bar + 10 at b.h:7, address = 0x000000014000102644#CHECK: (lldb) b c.h:545#CHECK: Breakpoint 9: where = {{.*}}`main + 42 [inlined] Namespace2::Class2::func at c.h:5, address = 0x000000014000102a46#CHECK: (lldb) b c.h:647#CHECK: Breakpoint 10: where = {{.*}}`main + 49 [inlined] Namespace2::Class2::func + 7 at c.h:6, address = 0x000000014000103148#CHECK: (lldb) b c.h:749#CHECK: Breakpoint 11: where = {{.*}}`main + 53 [inlined] Namespace2::Class2::func + 11 at c.h:7, address = 0x000000014000103550#CHECK: (lldb) b a.cpp:351#CHECK: Breakpoint 12: where = {{.*}}`main + 57 at a.cpp:3, address = 0x000000014000103952#CHECK: (lldb) b a.cpp:453#CHECK: Breakpoint 13: where = {{.*}}`main + 61 at a.cpp:4, address = 0x000000014000103d54 55# FIXME: The following variable location have wrong register numbers due to56# https://github.com/llvm/llvm-project/issues/53575. Fix them after resolving57# the issue.58 59# CHECK-LABEL: (lldb) image lookup -a 0x140001003 -v60# CHECK:       Summary: {{.*}}`main + 3 at a.cpp:261# CHECK:       Function: id = {{.*}}, name = "main", range = [0x0000000140001000-0x0000000140001046)62# CHECK:       Blocks: id = {{.*}}, range = [0x140001000-0x140001046)63# CHECK:       LineEntry: [0x0000000140001000-0x0000000140001004): /tmp/a.cpp:264# CHECK-NEXT:  Symbol: id = {{.*}}, range = [0x0000000140001000-0x0000000140001046), name="main"65# CHECK-NEXT:  Variable: id = {{.*}}, name = "argc", type = "int", valid ranges = <block>, location = [0x0000000140001000, 0x000000014000102d) -> DW_OP_reg26 XMM966# CHECK-NEXT:  Variable: id = {{.*}}, name = "argv", type = "char **", valid ranges = <block>, location = [0x0000000140001000, 0x0000000140001045) -> DW_OP_reg3 RBX67 68# CHECK-LABEL: (lldb) image lookup -a 0x140001004 -v69# CHECK:       Summary: {{.*}}`main + 4 [inlined] Namespace1::foo at a.h:570# CHECK-NEXT:           {{.*}}`main + 4 at a.cpp:371# CHECK:       Function: id = {{.*}}, name = "main", range = [0x0000000140001000-0x0000000140001046)72# CHECK:         Blocks: id = {{.*}}, range = [0x140001000-0x140001046)73# CHECK-NEXT:            id = {{.*}}, ranges = [0x140001004-0x140001039)[0x14000103f-0x140001046), name = "Namespace1::foo", decl = a.h:474# CHECK:       LineEntry: [0x0000000140001004-0x000000014000100c): /tmp/a.h:575# CHECK-NEXT:  Symbol: id = {{.*}}, range = [0x0000000140001000-0x0000000140001046), name="main"76# CHECK-NEXT:  Variable: id = {{.*}}, name = "x", type = "int", valid ranges = <block>, location = <empty>, decl =77# CHECK-NEXT:  Variable: id = {{.*}}, name = "foo_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001039) -> DW_OP_breg7 RSP+4478# CHECK-NEXT:  Variable: id = {{.*}}, name = "argc", type = "int", valid ranges = <block>, location = [0x0000000140001000, 0x000000014000102d) -> DW_OP_reg26 XMM979# CHECK-NEXT:  Variable: id = {{.*}}, name = "argv", type = "char **", valid ranges = <block>, location = [0x0000000140001000, 0x0000000140001045) -> DW_OP_reg3 RBX80# CHECK-NEXT:  Variable: id = {{.*}}, name = "main_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001046) -> DW_OP_breg7 RSP+4881 82# CHECK-LABEL: (lldb) image lookup -a 0x140001010 -v83# CHECK:       Summary: {{.*}}`main + 16 [inlined] Namespace1::foo + 12 at a.h:784# CHECK-NEXT:           {{.*}}`main + 4 at a.cpp:385# CHECK:       Function: id = {{.*}}, name = "main", range = [0x0000000140001000-0x0000000140001046)86# CHECK:         Blocks: id = {{.*}}, range = [0x140001000-0x140001046)87# CHECK-NEXT:            id = {{.*}}, ranges = [0x140001004-0x140001039)[0x14000103f-0x140001046), name = "Namespace1::foo", decl = a.h:488# CHECK:       LineEntry: [0x0000000140001010-0x0000000140001018): /tmp/a.h:789# CHECK-NEXT:  Symbol: id = {{.*}}, range = [0x0000000140001000-0x0000000140001046), name="main"90# CHECK-NEXT:  Variable: id = {{.*}}, name = "x", type = "int", valid ranges = <block>, location = <empty>, decl =91# CHECK-NEXT:  Variable: id = {{.*}}, name = "foo_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001039) -> DW_OP_breg7 RSP+4492# CHECK-NEXT:  Variable: id = {{.*}}, name = "argc", type = "int", valid ranges = <block>, location = [0x0000000140001000, 0x000000014000102d) -> DW_OP_reg26 XMM993# CHECK-NEXT:  Variable: id = {{.*}}, name = "argv", type = "char **", valid ranges = <block>, location = [0x0000000140001000, 0x0000000140001045) -> DW_OP_reg3 RBX94# CHECK-NEXT:  Variable: id = {{.*}}, name = "main_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001046) -> DW_OP_breg7 RSP+4895 96# CHECK-LABEL: (lldb) image lookup -a 0x14000101c -v97# CHECK:       Summary: {{.*}}`main + 28 [inlined] Class1::bar at b.h:598# CHECK-NEXT:           {{.*}}`main + 28 [inlined] Namespace1::foo + 24 at a.h:999# CHECK-NEXT:           {{.*}}`main + 4 at a.cpp:3100# CHECK:       Function: id = {{.*}}, name = "main", range = [0x0000000140001000-0x0000000140001046)101# CHECK:         Blocks: id = {{.*}}, range = [0x140001000-0x140001046)102# CHECK-NEXT:            id = {{.*}}, ranges = [0x140001004-0x140001039)[0x14000103f-0x140001046), name = "Namespace1::foo", decl = a.h:4103# CHECK-NEXT:            id = {{.*}}, range = [0x14000101c-0x140001039), name = "Class1::bar", decl = b.h:4104# CHECK:       LineEntry: [0x000000014000101c-0x0000000140001022): /tmp/b.h:5105# CHECK-NEXT:  Symbol: id = {{.*}}, range = [0x0000000140001000-0x0000000140001046), name="main"106# CHECK-NEXT:  Variable: id = {{.*}}, name = "x", type = "int", valid ranges = <block>, location = [0x000000014000101c, 0x000000014000101e) -> DW_OP_reg24 XMM7107# CHECK-NEXT:  Variable: id = {{.*}}, name = "bar_local", type = "volatile int", valid ranges = <block>, location = [0x000000014000101c, 0x0000000140001039) -> DW_OP_breg7 RSP+52108# CHECK-NEXT:  Variable: id = {{.*}}, name = "x", type = "int", valid ranges = <block>, location = <empty>, decl =109# CHECK-NEXT:  Variable: id = {{.*}}, name = "foo_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001039) -> DW_OP_breg7 RSP+44110# CHECK-NEXT:  Variable: id = {{.*}}, name = "argc", type = "int", valid ranges = <block>, location = [0x0000000140001000, 0x000000014000102d) -> DW_OP_reg26 XMM9111# CHECK-NEXT:  Variable: id = {{.*}}, name = "argv", type = "char **", valid ranges = <block>, location = [0x0000000140001000, 0x0000000140001045) -> DW_OP_reg3 RBX112# CHECK-NEXT:  Variable: id = {{.*}}, name = "main_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001046) -> DW_OP_breg7 RSP+48113 114# CHECK-LABEL: (lldb) image lookup -a 0x14000102a -v115# CHECK:       Summary: {{.*}}`main + 42 [inlined] Namespace2::Class2::func at c.h:5116# CHECK-NEXT:           {{.*}}`main + 42 [inlined] Class1::bar + 14 at b.h:7117# CHECK-NEXT:           {{.*}}`main + 28 [inlined] Namespace1::foo + 24 at a.h:9118# CHECK-NEXT:           {{.*}}`main + 4 at a.cpp:3119# CHECK:       Function: id = {{.*}}, name = "main", range = [0x0000000140001000-0x0000000140001046)120# CHECK:         Blocks: id = {{.*}}, range = [0x140001000-0x140001046)121# CHECK-NEXT:            id = {{.*}}, ranges = [0x140001004-0x140001039)[0x14000103f-0x140001046), name = "Namespace1::foo", decl = a.h:4122# CHECK-NEXT:            id = {{.*}}, range = [0x14000101c-0x140001039), name = "Class1::bar", decl = b.h:4123# CHECK-NEXT:            id = {{.*}}, range = [0x14000102a-0x140001039), name = "Namespace2::Class2::func", decl = c.h:4124# CHECK:       LineEntry: [0x000000014000102a-0x0000000140001031): /tmp/c.h:5125# CHECK-NEXT:  Symbol: id = {{.*}}, range = [0x0000000140001000-0x0000000140001046), name="main"126# CHECK-NEXT:  Variable: id = {{.*}}, name = "x", type = "int", valid ranges = <block>, location = [0x000000014000102a, 0x0000000140001039) -> DW_OP_reg24 XMM7127# CHECK-NEXT:  Variable: id = {{.*}}, name = "func_local", type = "volatile int", valid ranges = <block>, location = [0x000000014000102a, 0x0000000140001039) -> DW_OP_breg7 RSP+48128# CHECK-NEXT:  Variable: id = {{.*}}, name = "bar_local", type = "volatile int", valid ranges = <block>, location = [0x000000014000101c, 0x0000000140001039) -> DW_OP_breg7 RSP+52129# CHECK-NEXT:  Variable: id = {{.*}}, name = "x", type = "int", valid ranges = <block>, location = <empty>, decl =130# CHECK-NEXT:  Variable: id = {{.*}}, name = "foo_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001039) -> DW_OP_breg7 RSP+44131# CHECK-NEXT:  Variable: id = {{.*}}, name = "argc", type = "int", valid ranges = <block>, location = [0x0000000140001000, 0x000000014000102d) -> DW_OP_reg26 XMM9132# CHECK-NEXT:  Variable: id = {{.*}}, name = "argv", type = "char **", valid ranges = <block>, location = [0x0000000140001000, 0x0000000140001045) -> DW_OP_reg3 RBX133# CHECK-NEXT:  Variable: id = {{.*}}, name = "main_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001046) -> DW_OP_breg7 RSP+48134 135# CHECK-LABEL: (lldb) image lookup -a 0x140001039 -v136# CHECK:       Summary: {{.*}}`main + 57 at a.cpp:3137# CHECK:       Function: id = {{.*}}, name = "main", range = [0x0000000140001000-0x0000000140001046)138# CHECK:         Blocks: id = {{.*}}, range = [0x140001000-0x140001046)139# CHECK:       LineEntry: [0x0000000140001039-0x000000014000103d): /tmp/a.cpp:3140# CHECK-NEXT:  Symbol: id = {{.*}}, range = [0x0000000140001000-0x0000000140001046), name="main"141# CHECK-NEXT:  Variable: id = {{.*}}, name = "argv", type = "char **", valid ranges = <block>, location = [0x0000000140001000, 0x0000000140001045) -> DW_OP_reg3 RBX142# CHECK-NEXT:  Variable: id = {{.*}}, name = "main_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001046) -> DW_OP_breg7 RSP+48143 144# CHECK-LABEL: (lldb) image lookup -a 0x140001044 -v145# CHECK:       Summary: {{.*}}`main + 68 [inlined] Namespace1::foo + 5 at a.h:8146# CHECK-NEXT:           {{.*}}`main + 63 at a.cpp:3147# CHECK:       Function: id = {{.*}}, name = "main", range = [0x0000000140001000-0x0000000140001046)148# CHECK:         Blocks: id = {{.*}}, range = [0x140001000-0x140001046)149# CHECK-NEXT:            id = {{.*}}, ranges = [0x140001004-0x140001039)[0x14000103f-0x140001046), name = "Namespace1::foo", decl = a.h:4150# CHECK:       LineEntry: [0x0000000140001044-0x0000000140001046): /tmp/a.h:8151# CHECK-NEXT:  Symbol: id = {{.*}}, range = [0x0000000140001000-0x0000000140001046), name="main"152# CHECK-NEXT:  Variable: id = {{.*}}, name = "x", type = "int", valid ranges = <block>, location = <empty>, decl =153# CHECK-NEXT:  Variable: id = {{.*}}, name = "foo_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001044, 0x0000000140001046) -> DW_OP_breg7 RSP+44154# CHECK-NEXT:  Variable: id = {{.*}}, name = "argc", type = "int", valid ranges = <block>, location = [0x0000000140001044, 0x0000000140001045) -> DW_OP_reg26 XMM9155# CHECK-NEXT:  Variable: id = {{.*}}, name = "argv", type = "char **", valid ranges = <block>, location = [0x0000000140001000, 0x0000000140001045) -> DW_OP_reg3 RBX156# CHECK-NEXT:  Variable: id = {{.*}}, name = "main_local", type = "volatile int", valid ranges = <block>, location = [0x0000000140001004, 0x0000000140001046) -> DW_OP_breg7 RSP+48157 158# CHECK-LABEL: (lldb) target modules dump ast159# CHECK-NEXT:  Dumping clang ast for 1 modules.160# CHECK-NEXT:  TranslationUnitDecl {{.*}} <undeserialized declarations>161# CHECK-NEXT:  |-FunctionDecl {{.*}} main 'int (int, char **)'162# CHECK-NEXT:  | |-ParmVarDecl {{.*}} argc 'int'163# CHECK-NEXT:  | `-ParmVarDecl {{.*}} argv 'char **'164# CHECK-NEXT:  |-NamespaceDecl {{.*}} Namespace1165# CHECK-NEXT:  | `-FunctionDecl {{.*}} foo 'int (int)' inline166# CHECK-NEXT:  |   `-ParmVarDecl {{.*}} x 'int'167# CHECK-NEXT:  |-CXXRecordDecl {{.*}} <undeserialized declarations> class Class1168# CHECK-NEXT:  | |-AccessSpecDecl {{.*}} public169# CHECK-NEXT:  | `-CXXMethodDecl {{.*}} bar 'int (int)' static170# CHECK-NEXT:  |   `-ParmVarDecl {{.*}} 'int'171# CHECK-NEXT:  `-NamespaceDecl {{.*}} Namespace2172# CHECK-NEXT:    `-CXXRecordDecl {{.*}} <undeserialized declarations> class Class2173# CHECK-NEXT:      |-AccessSpecDecl {{.*}} public174# CHECK-NEXT:      `-CXXMethodDecl {{.*}} func 'int (int)' static175# CHECK-NEXT:        `-ParmVarDecl {{.*}} 'int'176