<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62941>62941</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm-symbolizer failed to get inline functions with split dwarf in dwarf 5
</td>
</tr>
<tr>
<th>Labels</th>
<td>
tools:llvm-symbolizer
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ZequanWu
</td>
</tr>
</table>
<pre>
a.cpp:
```
extern "C" void __attribute__((noreturn)) abort();
void bar();
__attribute__((always_inline)) void func() {
static volatile int gv_func;
++gv_func;
}
__attribute__((always_inline)) void foo() {
static volatile int gv_foo;
++gv_foo;
if (gv_foo)
abort();
bar();
}
void bar() {
static volatile int gv_bar;
++gv_bar;
func();
}
int main() {
foo();
return 0;
}
```
commands:
```
$ clang++ -fuse-ld=lld a.cpp -O2 -g -gsplit-dwarf -fdebug-compilation-dir=. -o a.split
$ llvm-dwarfdump a.split
0x00000014: DW_TAG_skeleton_unit
DW_AT_stmt_list (0x00000000)
DW_AT_str_offsets_base (0x00000008)
DW_AT_comp_dir (".")
DW_AT_GNU_pubnames (true)
DW_AT_dwo_name ("a.split-a.dwo")
DW_AT_low_pc (0x0000000000001760)
DW_AT_high_pc (0x00000000000017d4)
DW_AT_addr_base (0x00000008)
$ llvm-dwarfdump a.split-a.dwo
...
0x0000003b: DW_TAG_subprogram
DW_AT_ranges (indexed (0x0) rangelist = 0x00000030
[0x0000000000000010, 0x0000000000000032))
DW_AT_frame_base (DW_OP_reg7 RSP)
DW_AT_call_all_calls (true)
DW_AT_abstract_origin (0x00000093 "_Z3foov")
0x00000043: DW_TAG_variable
DW_AT_name ("gv_foo")
DW_AT_type (0x00000032 "volatile int")
DW_AT_decl_file (0x00)
DW_AT_decl_line (10)
DW_AT_location (DW_OP_addrx 0x1)
0x0000004e: DW_TAG_inlined_subroutine
DW_AT_abstract_origin (0x00000085 "_Z3barv")
DW_AT_ranges (indexed (0x1) rangelist = 0x00000034
[0x000000000000001f, 0x000000000000002b))
DW_AT_call_file (0x00)
DW_AT_call_line (14)
DW_AT_call_column (0x05)
...
$ llvm-symbolizer --obj=a.split -a 0x177f
0x177f
foo()
./a.cpp:19:5
$ lldb a.split -o "image lookup -a 0x177f" -o "exit"
...
(lldb) image lookup -a 0x177f
Address: a.split[0x000000000000177f] (a.split.PT_LOAD[1]..text + 271)
Summary: a.split`foo() + 15 [inlined] bar() at a.cpp:19:5
a.split`foo() + 15 at a.cpp:14:5
...
```
Expected behaviour is that it should show inlined function bar.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycV1-Pm7gX_TTOyxUITJiQhzwkzW_68tO22nZVqS_IYEPcGszaJsnsp1_ZkPCnJDu70UxguPceX59zsD1Ea17WjO1QfEDxcUVac5Jq95392ZL6W7vKJH3bET9vGhTtUXBEwR69BP2P-5NdDVM1IIw_IIzhLDmFNCXGKJ61hqUpwgnCSS0VM62qEd4ivAWSSWVcZIuiQw_svh1ARtRicAGYiAt50ymvBa9Zj-4wirbOOxBAmx4FAEAbYngOZymI4YIBrw2U59Sl30YDhA8IH-aP0eb4H_qQ8t-0IeXQBcCokVmAF4Bw0gfwtg8s8WqzFwi9zWWJ9ne1arMXW50HBiUejd59W9yK8PqXHu4UTmA7Q0GwADq1aC6ritRUP7IwwmvIBanLbgbgFa1mnqAoOgpBwdkfvE8YvBK8UjeCG49eiCrAKyjL2tLLZdVwy46sPcoVio4-eBKI75KHUYQ4V10pbatmGg-ugfuEaxTt4fgt_br_mOqfTDAj67Stb3k2tP-aalOZVHBtHPPJrToIBjPcElUqi0Izo9OMaAazgmQomHy6ajuzlHIFTgDsI4yf5n_87Y-0abOaVEzfIggnRrVs3hi9yNTm9SkI454Pj_j0Iv9pJCEvaZNP5-7427wETwtPvDw9qKTrp5WEUnXjcJnCxyL3k3JZvu9PNY8yqzncVW-zRslSkWpCmCJ12bGKcMJryq6M9n3Y98WFnSNQdIQ7dHBb0uLDdLpBEAYIf4D50wh3y9dk7EKRit390_dw_JZ--pwqVm7g9y-f5yU5ESK1v_ZGLxoBFlnOtFEkN6lUvOT1mOltZDea9HtUSHkeG2RK5zrq6LwTeiaKk0ywSX9T791W0kemG_ozbw0bNxVh29R4dXwPCmW5SAtb0EO9r8LuLoMA4S9vu5C5W4Z-Ucl69wrBNXzEGRstO90uRq0RlWyN3dGetvZEsiTuJcuIOr-HmJvL5x4Pn3h8_QjSMrDg-2LJ9zib-P5Be87VTrc7wVP1RmkzsdaLSbkUbVWPsOJ72n2duC8r-q3KpOB_MQWeJ7MfKDr26wt4xKq72RQ3XYf7Yf_sYBF-vZ3pwi2K9vF4FJrBHVJa7XhFSgZCyp9tMxoF4z7Ortw5ft5yYrGsaA8AOib2lCqm7d583w7ngrns-Gjp6VP8z1_T_3_aH1F8CFF89H3DrsYeQABvBoPDl7aqiHobY78Eo_MYPkAYW4P0freDDGcgYmCJpWdQ45L1UDKQMj14_O_asNwwChk7kTOXrQKuwZyIAW5An2QrqL1coG_QHaXc650R5a_oLqLbaEtWbBe-JHEQJdEWr067IiE03BRJgbdRRAuWJ2yNSZAEdJ2sMaYrvsMBjoIYx2ESRmHob1iS5y9bSjZJFL6wDVoHrCJc-NZ1vlTlimvdst0L3q7DlSAZE9r9z4CxkVJY-Wb-tI6Ijyu1c8-zttRoHdg3Vw-YhhvBdnNjF4QLRsFIKJnpZ36fuIYLNyfo_Nkdwnjd38SrVondyZjGHfXwK8KvJTenNvNzWSH8akfqL16j5A-WG4Rf3cw0wq9ucn8HAAD__6PLlHc">