This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
threads/2320: When using "sigwait" GDB doesn't trap SIGINT. Ctrl+C terminates program when should break gdb.
- From: jordiblasi at gmail dot com
- To: gdb-gnats at sources dot redhat dot com
- Date: 20 Sep 2007 08:53:13 -0000
- Subject: threads/2320: When using "sigwait" GDB doesn't trap SIGINT. Ctrl+C terminates program when should break gdb.
- Reply-to: jordiblasi at gmail dot com
>Number: 2320
>Category: threads
>Synopsis: When using "sigwait" GDB doesn't trap SIGINT. Ctrl+C terminates program when should break gdb.
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Thu Sep 20 08:58:01 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator: jordiblasi@gmail.com
>Release: GNU gdb 6.5
>Organization:
>Environment:
GNU/Linux 2.6.20.1 #3 PREEMPT i686
gcc (GCC) 4.1.1 20060724 (prerelease) (4.1.1-3mdk)
>Description:
I'm having problems getting GDB to not pass SIGINT to my program. In my main thread I do a sigwait for SIGINT. When I'm debugging, while gdb is running I may want to break gdb to set breakpoints or so, then I hit Ctrl-C (send SIGINT) but gdb does not break, instead SIGINT is passed to my program that gracefully terminates and gdb prints "Program exited normally". Of course "info handle" shows that SIGINT should not be being passed to my program:
(gdb) info handle SIGINT
Signal Stop Print Pass to program Description
SIGINT Yes Yes No Interrupt
GDB does not even print SIGINT signal delivery when I think it should.
Please check:
http://sourceware.org/ml/gdb/2006-04/msg00010.html
http://bugzilla.kernel.org/show_bug.cgi?id=9039
>How-To-Repeat:
Compile attached "test_gdb.cpp" file and run it under gdb. While running hit Ctrl+C to interrupt GDB. Program will terminate so no chance to debug it any more.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="test_gdb.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="test_gdb.cpp"
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPGVycm5vLmg+
CiNpbmNsdWRlIDxzaWduYWwuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKIAovLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCnZvaWQgdXNlcl9jYXRjaGVkX3NpZ2hhbmRsZXJfdGVybShpbnQgc2lnbmFsX251
bWJlcikKe30KCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kdm9pZCB1c2VyX2NhdGNoZWRfc2lnaGFu
ZGxlcl9pbnQoaW50IHNpZ25hbF9udW1iZXIpCnt9CgoKLy8gIFNpZ25hbCBudW1iZXIsIHNpZ25h
bCBoYW5kbGVyIHJlbGF0aW9uc2hpcAovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN0YXRpYyBjb25z
dCBzdHJ1Y3QKewogICAgaW50IG1fU2lnTnVtOwogICAgdm9pZCAoKm1fU2lnSGFuZGxlcikoaW50
KTsKfQpTaWduYWxfaGFuZGxlcnNbXSA9IHsKICAgICAgICB7IFNJR1RFUk0sIHVzZXJfY2F0Y2hl
ZF9zaWdoYW5kbGVyX3Rlcm0gfSwKICAgICAgICB7IFNJR0lOVCwgIHVzZXJfY2F0Y2hlZF9zaWdo
YW5kbGVyX2ludCAgfSwKfTsKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIgKiphcmd2KQp7CiAgICBzaWdzZXRfdCBzaWduYWxfc2V0OwogICAgaW50IHNpZ25h
bDsKICAgIHN0cnVjdCBzaWdhY3Rpb24gczsKCiAgICBzLnNhX2ZsYWdzID0gU0FfUkVTVEFSVDsK
CiAgICAvLyEgU2V0IHNpZ25hbCBoYW5kbGVycwogICAgLy8hLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgCiAgICBm
b3IodWludCBzaWcgPSAwOyBzaWcgPCBzaXplb2YoU2lnbmFsX2hhbmRsZXJzKS9zaXplb2YoU2ln
bmFsX2hhbmRsZXJzWzBdKTsgc2lnKyspCiAgICB7CiAgICAgICAgcy5zYV9oYW5kbGVyID0gU2ln
bmFsX2hhbmRsZXJzW3NpZ10ubV9TaWdIYW5kbGVyOwoKICAgICAgICBpZihzaWdhY3Rpb24oU2ln
bmFsX2hhbmRsZXJzW3NpZ10ubV9TaWdOdW0sICZzLCBOVUxMKSA8IDApCiAgICAgICAgewogICAg
ICAgICAgICBwZXJyb3IoIjwlcz4gRXJyb3Igc2lnYWN0aW9uOiAiKTsKICAgICAgICAgICAgZXhp
dCgyKTsKICAgICAgICB9CiAgICB9CgogICAgaWYoc2lnZmlsbHNldCgmc2lnbmFsX3NldCkgPCAw
KQogICAgewogICAgICAgIHBlcnJvcigiPG1haW4+IEVycm9yIHNpZ2ZpbGxzZXQoKTogIik7CiAg
ICAgICAgZXhpdCgyKTsKICAgIH0KCiAgICB3aGlsZSh0cnVlKQogICAgewogICAgICAgIC8vISBX
YWl0IGZvciBxdWV1ZWQgc2lnbmFscy4KICAgICAgICAvLyEtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgIGlm
KHNpZ3dhaXQoJnNpZ25hbF9zZXQsJnNpZ25hbCkgIT0gMCkKICAgICAgICB7CiAgICAgICAgICAg
IHBlcnJvcigiPG1haW4+IEVycm9yIHNpZ3dhaXQoKTogIik7CiAgICAgICAgICAgIGV4aXQoMSk7
CiAgICAgICAgfQoKICAgICAgICAvLyEgUHJvY2VzcyBzaWduYWwuCiAgICAgICAgLy8hLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KICAgICAgICBzd2l0Y2goc2lnbmFsKQogICAgICAgIHsKICAgICAgICAgICAgY2FzZSBT
SUdURVJNOgogICAgICAgICAgICBjYXNlIFNJR0lOVDogCiAgICAgICAgICAgICAgICBwcmludGYo
IlRlcm1pbmF0aW5nLlxuIik7CiAgICAgICAgICAgICAgICBleGl0KDApOwogICAgICAgICAgICBi
cmVhazsKCiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBwcmludGYoIlVuaGFu
ZGxlZCBzaWduYWwgWyVzXVxuIixzdHJzaWduYWwoc2lnbmFsKSk7CiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgIH0KICAgIH0KfQo=