This is a run of the above test-case with more details: There are two issues: get_addrdie() does not return the correct die: calling get_addrdie() with address 0x8048369 returned die: DW_TAG_compile_unit name: /to/scratch/swagiaal/frysks/frysk.patches/frysk-core/frysk/pkglibdir/funit-scopes.c But it can be seen from the attached relevenat debug info that the address actually falls within the expanded instance of the inlined function. The other issue is that in the test case where it works the complete hierarchy of scopes is not returned. Is there a bug or what is the correct way of getting the hierarchy of scopes that a die belongs to ? Frysk uses dwarf_getscopes() >> >> ------------------------------------------------------------------------ >> >> #include >> >> void crash(int param1){ >> int* a = 0; >> a[0] = param1; >> } >> >> inline void second(int w){ >> crash(0); >> } >> >> void first(){ >> second(0); >> } >> >> int main(){ >> >> first(0); >> >> return 0; >> }