gdb in ports

Jason Woodward woodwardj at averesystems.com
Mon May 11 20:21:45 UTC 2015


Hi all,

I had sent this to Luca but maybe others might have an idea...


I'm running into some difficulty debugging a live, multithreaded
application.  This seems to be the case with the 7.8.x gdbs and 7.9 (both
9.2 and 10 release).  When I attach, I see duplicates for the first thread:

  5    Thread 817ff2c00 (LWP 100541) 0x000000080bd6286c in poll () at
poll.S:3
  4    Thread 80efe8c00 (LWP 100546) 0x000000080bd6286c in poll () at
poll.S:3
  3    Thread 80efe9000 (LWP 100878) 0x000000080bd6286c in poll () at
poll.S:3
* 2    Thread 80efe9400 (LWP 101124) 0x000000080bd6286c in poll () at
poll.S:3
* 1    Thread 80efe9400 (LWP 101124) 0x000000080bd6286c in poll () at
poll.S:3

Trying to select 1 or 2 always ends up selecting 2:

(gdb) thread 1
[Switching to thread 2 (Thread 80efe9400 (LWP 101124))]
#0  0x000000080bd6286c in poll () at poll.S:3
3       in poll.S
(gdb) thread 2
[Switching to thread 2 (Thread 80efe9400 (LWP 101124))]
#0  0x000000080bd6286c in poll () at poll.S:33       in poll.S
(gdb)

On top of this, when stepping through it seems threads that start and stop
quickly have some sort of race condition that results in the thread
tracking getting messed up.  Sometimes I'll end up on thread 74, other
times I will be on a thread that has gone away and "info threads" does not
show me associated with any of the active threads.  With 7.8.x I would see:

  Id   Target Id         Frame
  75   Cannot find thread, Thread ID=101080, no thread to satisfy query


Unsure if related, but after stepping through with 7.9, the following
happens in fbsd_thread_wait():

infrun.c:5530: internal-error: switch_back_to_stepped_thread: Assertion
`!tp->control.trap_expected' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) y

This is a bug, please report it.  For instructions, see:
<http://www.gnu.org/software/gdb/bugs/>.

infrun.c:5530: internal-error: switch_back_to_stepped_thread: Assertion
`!tp->control.trap_expected' failed.
A problem internal to GDB has been detected,further debugging may prove
unreliable.
Create a core file of GDB? (y or n) n




take care,
jason


More information about the freebsd-ports mailing list