Debugging ld.so in gdb

Florian Weimer fweimer@redhat.com
Fri Feb 4 17:04:16 GMT 2022


* Jacob Kroon:

> I couldn't see that address anywhere in the output of "show files".
>
> But I did "full" recording, and found a place where just stepping a
> single instruction broke gdb interpreting the backtrace, if that is of
> any help. This is what I do:
>
> 1. goto instruction 225037
> 2. print backtrace (looks sane)
> 3. do "disas"
> 4. step one instruction with "stepi"
> 5. print backtrace (looks garbled)
> 6. do "disas"

Interesting.  Can you figure out where *rpo points right before things
go wrong?  If the debuginfo doesn't work, this should do it:

  print (void *)$rax - 8

Maybe also look at map->l_name at this point, and further up the stack,
in dl_sort_maps, at maps and nmaps.  It looks like we run off the end of
the array and write garbage to other areas of the process. 8-(

This must be caused by something unusual in the object dependencies.

Thanks,
Florian



More information about the Gdb mailing list