This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Remote Multithreaded Debugging
- From: "Eric Hammerle" <ehammerle at spectracomcorp dot com>
- To: <gdb at sources dot redhat dot com>
- Date: Thu, 29 Apr 2004 16:13:38 -0400
- Subject: Remote Multithreaded Debugging
Hi,
I'm currently attempting to get gdbserver 5.3 to debug a multithreaded
program
on an ARM7TDMI. I'm using uClibc 0.9.19 and uClinux kernel v 2.4.20. So
far
I have been able to debug single threaded programs while testing, but have
had
no luck in getting gdbserver to see the other threads. Two questions:
1. Is the mmu-less arm able to debug multithreaded programs using
gdbserver?
2. When loading a multithreaded program, after calling add-symbol-file
I get the following debug output:
gdbserver with remote_debug and debug_threads set to 1:
getpkt ("qSymbol::"); [sending ack]
[sent ack]
putpkt ("$qSymbol:5f5f707468726561645f746872656164735f6576656e7473#0d");
[lookin
g for ack]
[received '+' (0x2b)]
getpkt ("qSymbol:318018:5f5f707468726561645f746872656164735f6576656e7473");
[se
nding ack]
[sent ack]
putpkt ("$qSymbol:5f5f6c696e7578746872656164735f76657273696f6e#a9");
[looking fo
r ack]
[received '+' (0x2b)]
getpkt ("qSymbol:b09824:5f5f6c696e7578746872656164735f76657273696f6e");
[sendin
g ack]
[sent ack]
putpkt ("$qSymbol:5f5f707468726561645f6c6173745f6576656e74#90"); [looking
for ac
k]
[received '+' (0x2b)]
getpkt ("qSymbol:318020:5f5f707468726561645f6c6173745f6576656e74");
[sending ac
k]
[sent ack]
putpkt ("$qSymbol:5f5f707468726561645f68616e646c65735f6e756d#5b"); [looking
for
ack]
[received '+' (0x2b)]
getpkt ("qSymbol:1406e4:5f5f707468726561645f68616e646c65735f6e756d");
[sending
ack]
[sent ack]
putpkt ("$qSymbol:5f5f707468726561645f68616e646c6573#1f"); [looking for ack]
[received '+' (0x2b)]
getpkt ("qSymbol:13c6e4:5f5f707468726561645f68616e646c6573"); [sending ack]
[sent ack]
putpkt ("$qSymbol:707468726561645f6b657973#7e"); [looking for ack]
[received '+' (0x2b)]
getpkt ("qSymbol:140b20:707468726561645f6b657973"); [sending ack]
[sent ack]
putpkt
("$qSymbol:5f5f6c696e7578746872656164735f707468726561645f746872656164735f
6d6178#cb"); [looking for ack]
[received '+' (0x2b)]
getpkt
("qSymbol:b097e0:5f5f6c696e7578746872656164735f707468726561645f7468726561
64735f6d6178"); [sending ack]
[sent ack]
putpkt
("$qSymbol:5f5f6c696e7578746872656164735f707468726561645f6b6579735f6d6178
#c0"); [looking for ack]
[received '+' (0x2b)]
getpkt
("qSymbol:b0982c:5f5f6c696e7578746872656164735f707468726561645f6b6579735f
6d6178"); [sending ack]
[sent ack]
putpkt
("$qSymbol:5f5f6c696e7578746872656164735f707468726561645f73697a656f665f64
65736372#68"); [looking for ack]
[received '+' (0x2b)]
getpkt
("qSymbol:b09820:5f5f6c696e7578746872656164735f707468726561645f73697a656f
665f6465736372"); [sending ack]
[sent ack]
Writing ff to 00318018
putpkt
("$qSymbol:5f5f6c696e7578746872656164735f6372656174655f6576656e74#b6"); [
looking for ack]
[received '+' (0x2b)]
getpkt
("qSymbol:a4dd34:5f5f6c696e7578746872656164735f6372656174655f6576656e74")
; [sending ack]
[sent ack]
Writing 01 to 00a4dd34
putpkt
("$qSymbol:5f5f6c696e7578746872656164735f696e697469616c5f7265706f72745f65
76656e7473#3f"); [looking for ack]
[received '+' (0x2b)]
getpkt
("qSymbol:318028:5f5f6c696e7578746872656164735f696e697469616c5f7265706f72
745f6576656e7473"); [sending ack]
[sent ack]
Writing 01 to 00318028
[at this point the program is no longer responsive]
I don't get this problem when debugging single threaded programs.
Any help would be most appreciated. Thanks in advance!
E. Hammerle