This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb/1847: Step over (next) fails in pthreads programs on recent (NPTL) RedHat Linuxes


>Number:         1847
>Category:       gdb
>Synopsis:       Step over (next) fails in pthreads programs on recent (NPTL) RedHat Linuxes
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 18 10:28:00 UTC 2005
>Closed-Date:
>Last-Modified:
>Originator:     matb@enea.se
>Release:        GNU gdb Red Hat Linux (6.1post-1.20040607.17rh)
>Organization:
>Environment:
Linux viper 2.4.21-20.0.1.ELsmp #1 SMP Wed Nov 24 20:34:01 EST 2004 i686 athlon i386 GNU/Linux
gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-42)
This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1".
>Description:
Can't find a combination of GDB (5.2.1, 6.0, 6.1, 6.3) and recent RedHat Linuxes (Enterprise Linux 3, Fedora Core 2) in which step over (next) works with pthreads programs.

The symptoms vary slightly but the two most common cases is that we stop in __nptl_create_event() (on some configurations with the text "Thread Event Breakpoint: gdb should not stop!"), or that we loose control and the step never finishes.

The original program I was trying this with is a big beast that in addition to the pthreads primitives uses setjmp / longjmp, which seems to add to the problems. 

However even simple programs, like the one attached, shows some of the problems. 
>How-To-Repeat:
--- Just set a breakpoint in the code run by one of the threads and try to step ---

(gdb) break main.c:46
Breakpoint 1 at 0x80488c0: file temp/main.c, line 46.
(gdb) run
Starting program: /homedirectories/home4/matb/ping 
[Thread debugging using libthread_db enabled]
[New Thread -1218598048 (LWP 24064)]
[New Thread -1219945552 (LWP 24067)]
[Switching to Thread -1219945552 (LWP 24067)]

Breakpoint 1, ping (p=0x0) at temp/main.c:46
46            swapin();
(gdb) delete 1
(gdb) n
[New Thread -1230435408 (LWP 24068)]

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread -1218598048 (LWP 24064)]
0xb75ce6f1 in __nptl_create_event () from /lib/tls/libpthread.so.0
(gdb) bt
#0  0xb75ce6f1 in __nptl_create_event () from /lib/tls/libpthread.so.0
#1  0xb6a90bb0 in ?? ()
#2  0xb75d59e0 in banner () from /lib/tls/libpthread.so.0
#3  0x027d0f00 in ?? ()
#4  0xb75ced50 in __free_tcb () from /lib/tls/libpthread.so.0
Previous frame inner to this frame (corrupt stack?)

--- or ---

(gdb) n
54               if (pthread_create(&t, NULL, pang, NULL))
(gdb) n
[New Thread -1262003280 (LWP 18224)]
59               threads[2] = t;
(gdb) n
61            i = (i+1) % 5;
(gdb) n
63            swapout();
(gdb) n
PONG! 44           for (;;)
(gdb) n
46            swapin();
(gdb) n
PANG! 47              printf("PING! ");
(gdb) n
48            fflush(stdout);
(gdb) n
PING! 49              sleep(1);
(gdb) n
[Thread -1262003280 (zombie) exited]
PONG! PING! PONG! PING! PONG! PING! PONG! PING! PONG! 
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="main.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="main.c"

I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8cHRocmVhZC5oPg0KI2luY2x1ZGUgPHVuaXN0
ZC5oPg0KI2luY2x1ZGUgPHN0ZGxpYi5oPg0KDQpzdGF0aWMgcHRocmVhZF9tdXRleF90IHRocmVh
ZHNfbXV0ZXg7DQpzdGF0aWMgcHRocmVhZF9jb25kX3QgdGhyZWFkc19jb25kOw0KDQojZGVmaW5l
IE1BWF9USFJFQURTIDMNCg0Kc3RhdGljIHB0aHJlYWRfdCB0aHJlYWRzWzNdOw0Kc3RhdGljIGlu
dCBjdXJyZW50ID0gMDsNCg0Kc3RhdGljIHZvaWQgc3dhcGluKHZvaWQpDQp7DQogICBwdGhyZWFk
X211dGV4X2xvY2soJnRocmVhZHNfbXV0ZXgpOw0KICAgd2hpbGUodGhyZWFkc1tjdXJyZW50XSAh
PSBwdGhyZWFkX3NlbGYoKSkNCiAgIHsNCiAgICAgIHB0aHJlYWRfY29uZF93YWl0KCZ0aHJlYWRz
X2NvbmQsICZ0aHJlYWRzX211dGV4KTsNCiAgIH0NCiAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ0
aHJlYWRzX211dGV4KTsgICANCn0NCg0Kc3RhdGljIHZvaWQgc3dhcG91dCh2b2lkKQ0Kew0KICAg
cHRocmVhZF9tdXRleF9sb2NrKCZ0aHJlYWRzX211dGV4KTsNCiAgIGRvDQogICB7DQogICAgICBj
dXJyZW50ID0gKGN1cnJlbnQgKyAxKSAlIE1BWF9USFJFQURTOw0KICAgfQ0KICAgd2hpbGUgKHRo
cmVhZHNbY3VycmVudF0gPT0gMCk7DQogICBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0KCZ0aHJlYWRz
X2NvbmQpOyAgDQogICBwdGhyZWFkX211dGV4X3VubG9jaygmdGhyZWFkc19tdXRleCk7DQp9DQoN
CnN0YXRpYyB2b2lkICpwYW5nKHZvaWQgKnApDQp7DQogICBzd2FwaW4oKTsNCiAgIHByaW50Zigi
UEFORyEgIik7DQogICBmZmx1c2goc3Rkb3V0KTsNCiAgIHNsZWVwKDEpOw0KICAgdGhyZWFkc1sy
XSA9IDA7ICAgDQogICBzd2Fwb3V0KCk7DQogICANCiAgIHB0aHJlYWRfZXhpdChOVUxMKTsNCiAg
IHJldHVybiBOVUxMOw0KfQ0KDQpzdGF0aWMgdm9pZCAqcGluZyh2b2lkICpwKQ0Kew0KICAgaW50
IGkgPSAwOw0KICAgDQogICBmb3IgKDs7KQ0KICAgew0KICAgICAgc3dhcGluKCk7DQogICAgICBw
cmludGYoIlBJTkchICIpOw0KICAgICAgZmZsdXNoKHN0ZG91dCk7DQogICAgICBzbGVlcCgxKTsN
CiAgICAgIGlmIChpID09IDApDQogICAgICB7DQogICAgICAgICBwdGhyZWFkX3QgdDsNCiAgICAg
ICAgIA0KICAgICAgICAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0LCBOVUxMLCBwYW5nLCBOVUxMKSkN
CiAgICAgICAgIHsNCiAgICAgICAgICAgIHBlcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBQQU5HIHRo
cmVhZCIpOw0KICAgICAgICAgICAgZXhpdCgtMSk7ICAgIA0KICAgICAgICAgfQ0KICAgICAgICAg
dGhyZWFkc1syXSA9IHQ7DQogICAgICB9DQogICAgICBpID0gKGkrMSkgJSA1Ow0KDQogICAgICBz
d2Fwb3V0KCk7DQogICB9DQogICByZXR1cm4gTlVMTDsNCn0NCg0Kc3RhdGljIHZvaWQgKnBvbmco
dm9pZCAqcCkNCnsNCiAgIGZvciAoOzspDQogICB7DQogICAgICBzd2FwaW4oKTsNCiAgICAgIHBy
aW50ZigiUE9ORyEgIik7DQogICAgICBmZmx1c2goc3Rkb3V0KTsNCiAgICAgIHNsZWVwKDEpOw0K
ICAgICAgc3dhcG91dCgpOw0KICAgfQ0KICAgcmV0dXJuIE5VTEw7DQp9DQoNCmludCBtYWluKGlu
dCBhcmdjLCBjaGFyICoqYXJndikNCnsNCiAgIGlmIChwdGhyZWFkX211dGV4X2luaXQoJnRocmVh
ZHNfbXV0ZXgsIE5VTEwpKQ0KICAgew0KICAgICAgcGVycm9yKCJGYWlsZWQgdG8gaW5pdCBtdXRl
eCIpOw0KICAgICAgZXhpdCgtMSk7ICAgIA0KICAgfQ0KICAgaWYgKHB0aHJlYWRfY29uZF9pbml0
KCZ0aHJlYWRzX2NvbmQsIE5VTEwpKQ0KICAgew0KICAgICAgcGVycm9yKCJGYWlsZWQgdG8gaW5p
dCBjb25kaXRpb24gdmFyaWFibGUiKTsNCiAgICAgIGV4aXQoLTEpOyAgICANCiAgIH0NCiAgIGlm
IChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkc1swXSwgTlVMTCwgcGluZywgTlVMTCkpIA0KICAgew0K
ICAgICAgcGVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIFBJTkcgdGhyZWFkIik7DQogICAgICBleGl0
KC0xKTsgICAgDQogICB9DQogICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZHNbMV0sIE5VTEws
IHBvbmcsIE5VTEwpKSANCiAgIHsNCiAgICAgIHBlcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBQT05H
IHRocmVhZCIpOw0KICAgICAgZXhpdCgtMSk7ICAgIA0KICAgfQ0KICAgICANCiAgIHB0aHJlYWRf
am9pbih0aHJlYWRzWzBdLCBOVUxMKTsNCiAgIHB0aHJlYWRfam9pbih0aHJlYWRzWzFdLCBOVUxM
KTsNCiAgIA0KICAgcHRocmVhZF9jb25kX2Rlc3Ryb3koJnRocmVhZHNfY29uZCk7DQogICBwdGhy
ZWFkX211dGV4X2Rlc3Ryb3koJnRocmVhZHNfbXV0ZXgpOw0KICAgDQogICAodm9pZCkgYXJnYzsN
CiAgICh2b2lkKSBhcmd2Ow0KICAgDQogICByZXR1cm4gMDsNCn0NCg==


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]