176 lines · plain
1; RUN: llvm-pdbutil yaml2pdb %p/Inputs/symbol-offset.yaml --pdb=%t.pdb2 3; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=80 %t.pdb \4; RUN: | FileCheck --check-prefix=OFFSET %s5 6; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=4 --show-parents \7; RUN: %t.pdb | FileCheck --check-prefix=SHOW-PARENT1 %s8 9; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=80 --show-parents \10; RUN: %t.pdb | FileCheck --check-prefix=SHOW-PARENT2 %s11 12; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=308 --show-parents \13; RUN: %t.pdb | FileCheck --check-prefix=SHOW-PARENT3 %s14 15; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=260 --show-parents \16; RUN: --parent-recurse-depth=1 %t.pdb \17; RUN: | FileCheck --check-prefix=SHOW-PARENT-DEPTH1 %s18 19; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=260 --show-parents \20; RUN: --parent-recurse-depth=2 %t.pdb \21; RUN: | FileCheck --check-prefix=SHOW-PARENT-DEPTH2 %s22 23; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=416 --show-children\24; RUN: %t.pdb | FileCheck --check-prefix=SHOW-CHILDREN1 %s25 26; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=292 --show-children\27; RUN: %t.pdb | FileCheck --check-prefix=SHOW-CHILDREN2 %s28 29; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=4 --show-children \30; RUN: --children-recurse-depth=1 %t.pdb \31; RUN: | FileCheck --check-prefix=SHOW-CHILDREN-DEPTH1 %s32 33; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=292 --show-children\34; RUN: --children-recurse-depth=2 %t.pdb \35; RUN: | FileCheck --check-prefix=SHOW-CHILDREN-DEPTH2 %s36 37The pdb file is generate from following cpp file and use llvm-pdbutil's pdb2yaml38functionality to convert pdb to yaml. Unrelated information was removed from the39yaml test file.40; [[clang::always_inline]] int func1(int x) {41; return x * 2;42; }43;44; [[clang::always_inline]] int func2(int x, int y) {45; return func1(x + y);46; }47;48; [[clang::always_inline]] int func3(int x, int y, int z) {49; y += func1(x);50; x += func2(y, z);51; return x + func1(x);52; }53;54; int main(int argc, char** argv) {55; return func3(argc, 1, 2);56; }57 58 59OFFSET: 80 | S_LOCAL [size = 16] `argc`60OFFSET-NEXT: type=0x0074 (int), flags = param61 62SHOW-PARENT1: 4 | S_GPROC32 [size = 44] `main`63SHOW-PARENT1-NEXT: parent = 0, end = 468, addr = 0001:0176, code size = 13764SHOW-PARENT1-NEXT: type = `0x1008 (<unknown UDT>)`, debug start = 0, debug end = 0, flags = none65 66SHOW-PARENT2: 4 | S_GPROC32 [size = 44] `main`67SHOW-PARENT2-NEXT: parent = 0, end = 468, addr = 0001:0176, code size = 13768SHOW-PARENT2-NEXT: type = `0x1008 (<unknown UDT>)`, debug start = 0, debug end = 0, flags = none69SHOW-PARENT2-NEXT: 80 | S_LOCAL [size = 16] `argc`70SHOW-PARENT2-NEXT: type=0x0074 (int), flags = param71SHOW-PARENT2-NEXT: 468 | S_END [size = 4]72 73SHOW-PARENT3: 4 | S_GPROC32 [size = 44] `main`74SHOW-PARENT3-NEXT: parent = 0, end = 468, addr = 0001:0176, code size = 13775SHOW-PARENT3-NEXT: type = `0x1008 (<unknown UDT>)`, debug start = 0, debug end = 0, flags = none76SHOW-PARENT3-NEXT: 144 | S_INLINESITE [size = 16]77SHOW-PARENT3-NEXT: inlinee = 0x1002 (<unknown UDT>), parent = 4, end = 46478SHOW-PARENT3-NEXT: 292 | S_INLINESITE [size = 16]79SHOW-PARENT3-NEXT: inlinee = 0x1001 (<unknown UDT>), parent = 144, end = 41280SHOW-PARENT3-NEXT: 308 | S_LOCAL [size = 12] `x`81SHOW-PARENT3-NEXT: type=0x0074 (int), flags = param82SHOW-PARENT3-NEXT: 412 | S_INLINESITE_END [size = 4]83SHOW-PARENT3-NEXT: 464 | S_INLINESITE_END [size = 4]84SHOW-PARENT3-NEXT: 468 | S_END [size = 4]85 86 87SHOW-PARENT-DEPTH1: 244 | S_INLINESITE [size = 16]88SHOW-PARENT-DEPTH1-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 144, end = 28889SHOW-PARENT-DEPTH1-NEXT: 260 | S_LOCAL [size = 12] `x`90SHOW-PARENT-DEPTH1-NEXT: type=0x0074 (int), flags = param91SHOW-PARENT-DEPTH1-NEXT: 288 | S_INLINESITE_END [size = 4]92 93SHOW-PARENT-DEPTH2: 144 | S_INLINESITE [size = 16]94SHOW-PARENT-DEPTH2-NEXT: inlinee = 0x1002 (<unknown UDT>), parent = 4, end = 46495SHOW-PARENT-DEPTH2-NEXT: 244 | S_INLINESITE [size = 16]96SHOW-PARENT-DEPTH2-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 144, end = 28897SHOW-PARENT-DEPTH2-NEXT: 260 | S_LOCAL [size = 12] `x`98SHOW-PARENT-DEPTH2-NEXT: type=0x0074 (int), flags = param99SHOW-PARENT-DEPTH2-NEXT: 288 | S_INLINESITE_END [size = 4]100SHOW-PARENT-DEPTH2-NEXT: 464 | S_INLINESITE_END [size = 4]101 102SHOW-CHILDREN1: 416 | S_INLINESITE [size = 16]103SHOW-CHILDREN1-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 144, end = 460104SHOW-CHILDREN1-NEXT: 432 | S_LOCAL [size = 12] `x`105SHOW-CHILDREN1-NEXT: type=0x0074 (int), flags = param106SHOW-CHILDREN1-NEXT: 444 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16]107SHOW-CHILDREN1-NEXT: offset = 36, range = [0001:0299,+7)108SHOW-CHILDREN1-NEXT: gaps = []109SHOW-CHILDREN1-NEXT: 460 | S_INLINESITE_END [size = 4]110 111SHOW-CHILDREN2: 292 | S_INLINESITE [size = 16]112SHOW-CHILDREN2-NEXT: inlinee = 0x1001 (<unknown UDT>), parent = 144, end = 412113SHOW-CHILDREN2-NEXT: 308 | S_LOCAL [size = 12] `x`114SHOW-CHILDREN2-NEXT: type=0x0074 (int), flags = param115SHOW-CHILDREN2-NEXT: 320 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16]116SHOW-CHILDREN2-NEXT: offset = 44, range = [0001:0260,+19)117SHOW-CHILDREN2-NEXT: gaps = []118SHOW-CHILDREN2-NEXT: 336 | S_LOCAL [size = 12] `y`119SHOW-CHILDREN2-NEXT: type=0x0074 (int), flags = param120SHOW-CHILDREN2-NEXT: 348 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16]121SHOW-CHILDREN2-NEXT: offset = 48, range = [0001:0260,+19)122SHOW-CHILDREN2-NEXT: gaps = []123SHOW-CHILDREN2-NEXT: 364 | S_INLINESITE [size = 16]124SHOW-CHILDREN2-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 292, end = 408125SHOW-CHILDREN2-NEXT: 380 | S_LOCAL [size = 12] `x`126SHOW-CHILDREN2-NEXT: type=0x0074 (int), flags = param127SHOW-CHILDREN2-NEXT: 392 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16]128SHOW-CHILDREN2-NEXT: offset = 52, range = [0001:0272,+7)129SHOW-CHILDREN2-NEXT: gaps = []130SHOW-CHILDREN2-NEXT: 408 | S_INLINESITE_END [size = 4]131SHOW-CHILDREN2-NEXT: 412 | S_INLINESITE_END [size = 4]132 133SHOW-CHILDREN-DEPTH1: 4 | S_GPROC32 [size = 44] `main`134SHOW-CHILDREN-DEPTH1-NEXT: parent = 0, end = 468, addr = 0001:0176, code size = 137135SHOW-CHILDREN-DEPTH1-NEXT: type = `0x1008 (<unknown UDT>)`, debug start = 0, debug end = 0, flags = none136SHOW-CHILDREN-DEPTH1-NEXT: 48 | S_FRAMEPROC [size = 32]137SHOW-CHILDREN-DEPTH1-NEXT: size = 56, padding size = 0, offset to padding = 0138SHOW-CHILDREN-DEPTH1-NEXT: bytes of callee saved registers = 0, exception handler addr = 0000:0000139SHOW-CHILDREN-DEPTH1-NEXT: local fp reg = NONE, param fp reg = NONE140SHOW-CHILDREN-DEPTH1-NEXT: flags = none141SHOW-CHILDREN-DEPTH1-NEXT: 80 | S_LOCAL [size = 16] `argc`142SHOW-CHILDREN-DEPTH1-NEXT: type=0x0074 (int), flags = param143SHOW-CHILDREN-DEPTH1-NEXT: 96 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16]144SHOW-CHILDREN-DEPTH1-NEXT: offset = 4, range = [0001:0197,+116)145SHOW-CHILDREN-DEPTH1-NEXT: gaps = []146SHOW-CHILDREN-DEPTH1-NEXT: 112 | S_LOCAL [size = 16] `argv`147SHOW-CHILDREN-DEPTH1-NEXT: type=0x1006 (<unknown UDT>), flags = param148SHOW-CHILDREN-DEPTH1-NEXT: 128 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16]149SHOW-CHILDREN-DEPTH1-NEXT: offset = 8, range = [0001:0197,+116)150SHOW-CHILDREN-DEPTH1-NEXT: gaps = []151SHOW-CHILDREN-DEPTH1-NEXT: 144 | S_INLINESITE [size = 16]152SHOW-CHILDREN-DEPTH1-NEXT: inlinee = 0x1002 (<unknown UDT>), parent = 4, end = 464153SHOW-CHILDREN-DEPTH1-NEXT: 464 | S_INLINESITE_END [size = 4]154SHOW-CHILDREN-DEPTH1-NEXT: 468 | S_END [size = 4]155 156SHOW-CHILDREN-DEPTH2: 292 | S_INLINESITE [size = 16]157SHOW-CHILDREN-DEPTH2-NEXT: inlinee = 0x1001 (<unknown UDT>), parent = 144, end = 412158SHOW-CHILDREN-DEPTH2-NEXT: 308 | S_LOCAL [size = 12] `x`159SHOW-CHILDREN-DEPTH2-NEXT: type=0x0074 (int), flags = param160SHOW-CHILDREN-DEPTH2-NEXT: 320 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16]161SHOW-CHILDREN-DEPTH2-NEXT: offset = 44, range = [0001:0260,+19)162SHOW-CHILDREN-DEPTH2-NEXT: gaps = []163SHOW-CHILDREN-DEPTH2-NEXT: 336 | S_LOCAL [size = 12] `y`164SHOW-CHILDREN-DEPTH2-NEXT: type=0x0074 (int), flags = param165SHOW-CHILDREN-DEPTH2-NEXT: 348 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16]166SHOW-CHILDREN-DEPTH2-NEXT: offset = 48, range = [0001:0260,+19)167SHOW-CHILDREN-DEPTH2-NEXT: gaps = []168SHOW-CHILDREN-DEPTH2-NEXT: 364 | S_INLINESITE [size = 16]169SHOW-CHILDREN-DEPTH2-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 292, end = 408170SHOW-CHILDREN-DEPTH2-NEXT: 380 | S_LOCAL [size = 12] `x`171SHOW-CHILDREN-DEPTH2-NEXT: type=0x0074 (int), flags = param172SHOW-CHILDREN-DEPTH2-NEXT: 392 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16]173SHOW-CHILDREN-DEPTH2-NEXT: offset = 52, range = [0001:0272,+7)174SHOW-CHILDREN-DEPTH2-NEXT: gaps = []175SHOW-CHILDREN-DEPTH2-NEXT: 408 | S_INLINESITE_END [size = 4]176SHOW-CHILDREN-DEPTH2-NEXT: 412 | S_INLINESITE_END [size = 4]