1cc9ced0eSZequan Wu# RUN: yaml2obj %S/Inputs/basic-elf.yaml -o %T/inline-record.out 2cc9ced0eSZequan Wu# RUN: %lldb %T/inline-record.out -o "target symbols add -s inline-record.out %S/Inputs/inline-record.syms" \ 3cc9ced0eSZequan Wu# RUN: -s %s | FileCheck --match-full-lines %s 4cc9ced0eSZequan Wu 5cc9ced0eSZequan Wu# CHECK-LABEL: (lldb) image lookup -a 0x400010 -v 6cc9ced0eSZequan Wu# CHECK: Summary: inline-record.out`f1 [inlined] inlined_f1 at a.c:3 7cc9ced0eSZequan Wu# CHECK-NEXT: inline-record.out`f1 at a.c:8 8*f5ba0a3dSMuhammad Omair Javaid# CHECK: Function: id = {{.*}}, name = "f1", range = [0x0000000000400010-0x0000000000400020) 9*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: Blocks: id = {{.*}}, range = [0x00400010-0x00400020) 10*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: id = {{.*}}, ranges = [0x00400010-0x00400015)[0x00400017-0x0040001b), name = "inlined_f1" 11cc9ced0eSZequan Wu 12cc9ced0eSZequan Wu# CHECK-LABEL: (lldb) image lookup -a 0x400016 -v 13cc9ced0eSZequan Wu# CHECK: Summary: inline-record.out`f1 + 6 at a.c:3 14cc9ced0eSZequan Wu# CHECK-NOT: inline-record.out`f1 15*f5ba0a3dSMuhammad Omair Javaid# CHECK: Function: id = {{.*}}, name = "f1", range = [0x0000000000400010-0x0000000000400020) 16*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: Blocks: id = {{.*}}, range = [0x00400010-0x00400020) 17cc9ced0eSZequan Wu 18cc9ced0eSZequan Wu# CHECK-LABEL: (lldb) image lookup -a 0x400023 -v 19cc9ced0eSZequan Wu# CHECK: Summary: inline-record.out`f2 + 3 [inlined] inlined_f2 at b.c:2 20cc9ced0eSZequan Wu# CHECK-NEXT: inline-record.out`f2 + 3 [inlined] inlined_f1 at b.c:4 21cc9ced0eSZequan Wu# CHECK-NEXT: inline-record.out`f2 + 3 at a.c:3 22*f5ba0a3dSMuhammad Omair Javaid# CHECK: Function: id = {{.*}}, name = "f2", range = [0x0000000000400020-0x0000000000400030) 23*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: Blocks: id = {{.*}}, range = [0x00400020-0x00400030) 24*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: id = {{.*}}, range = [0x00400023-0x0040002d), name = "inlined_f1" 25*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: id = {{.*}}, range = [0x00400023-0x00400028), name = "inlined_f2" 26cc9ced0eSZequan Wu 27cc9ced0eSZequan Wu# CHECK-LABEL: (lldb) image lookup -a 0x400029 -v 28cc9ced0eSZequan Wu# CHECK: Summary: inline-record.out`f2 + 9 [inlined] inlined_f1 + 6 at b.c:2 29cc9ced0eSZequan Wu# CHECK-NEXT: inline-record.out`f2 + 3 at a.c:3 30*f5ba0a3dSMuhammad Omair Javaid# CHECK: Function: id = {{.*}}, name = "f2", range = [0x0000000000400020-0x0000000000400030) 31*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: Blocks: id = {{.*}}, range = [0x00400020-0x00400030) 32*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: id = {{.*}}, range = [0x00400023-0x0040002d), name = "inlined_f1" 33cc9ced0eSZequan Wu 34cc9ced0eSZequan Wu# CHECK-LABEL: (lldb) image lookup -a 0x400030 -v 35cc9ced0eSZequan Wu# CHECK: Summary: inline-record.out`f3 [inlined] inlined_f1 at b.c:3 36cc9ced0eSZequan Wu# CHECK-NEXT: inline-record.out`f3 at 3 37*f5ba0a3dSMuhammad Omair Javaid# CHECK: Function: id = {{.*}}, name = "f3", range = [0x0000000000400030-0x0000000000400040) 38*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: Blocks: id = {{.*}}, range = [0x00400030-0x00400040) 39*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: id = {{.*}}, range = [0x00400030-0x00400035), name = "inlined_f1" 40cc9ced0eSZequan Wu 41cc9ced0eSZequan Wu 42cc9ced0eSZequan Wu# CHECK-LABEL: (lldb) image lookup -a 0x400035 -v 43cc9ced0eSZequan Wu# CHECK: Summary: inline-record.out`f3 + 5 [inlined] at b.c:3 44cc9ced0eSZequan Wu# CHECK-NEXT: inline-record.out`f3 + 5 at a.c:3 45*f5ba0a3dSMuhammad Omair Javaid# CHECK: Function: id = {{.*}}, name = "f3", range = [0x0000000000400030-0x0000000000400040) 46*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: Blocks: id = {{.*}}, range = [0x00400030-0x00400040) 47*f5ba0a3dSMuhammad Omair Javaid# CHECK-NEXT: id = {{.*}}, range = [0x00400035-0x0040003a) 48cc9ced0eSZequan Wu 49cc9ced0eSZequan Wuimage lookup -a 0x400010 -v 50cc9ced0eSZequan Wuimage lookup -a 0x400016 -v 51cc9ced0eSZequan Wuimage lookup -a 0x400023 -v 52cc9ced0eSZequan Wuimage lookup -a 0x400029 -v 53cc9ced0eSZequan Wu# Folling addresses are inside INLINE records that have file index or origin index out of range. 54cc9ced0eSZequan Wuimage lookup -a 0x400030 -v 55cc9ced0eSZequan Wuimage lookup -a 0x400035 -v 56cc9ced0eSZequan Wuexit 57