Re: gdb / thread_db / multiple ABI question
Pedro Alves <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 07/07/2017 07:20 PM, Steve Ellcey wrote: > It makes sense that the LP64 gdb cannot dlopen the ILP32 thread_db that > corresponds to the ILP32 thread library that the program being debugged > uses but I don't know what to do about it. > > I looked at x86 and when I compile a 32 bit program there and then debug > it with a 64 bit gdb I see: > > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". > > So I am guessing that aarch64 needs to use the 64 bit libthread_db.so.1 even > when debugging 32 bit programs, is that right? Yes. Though I have no idea whether an Aarch64 build of libthread_db is capable of biarch debugging. It may be that GDB is already trying to the load the 64-bit libthread_db, but then libthread_db rejects the inferior for some reason. The "set debug libthread-db" option should help you figure that out. See below. > What do I need to do to tell > gdb to do that? I tried adding /home/sellcey/gdb-ilp32/install/lib64 to > solib-search-path but that did not help. I am not sure what triggers the > difference in behaviour between aarch64 and x86. See: (gdb) apropos libthread info auto-load libthread-db -- Print the list of loaded inferior specific libthread_db set auto-load libthread-db -- Enable or disable auto-loading of inferior specific libthread_db set debug libthread-db -- Set libthread-db debugging set libthread-db-search-path -- Set search path for libthread_db show auto-load libthread-db -- Show whether auto-loading inferior specific libthread_db is enabled show debug libthread-db -- Show libthread-db debugging show libthread-db-search-path -- Show the current search path or libthread_db The related GDB code is in gdb/linux-thread-db.c. Thanks, Pedro Alves