diff options
author | Pedro Alves <palves@redhat.com> | 2015-03-19 12:20:25 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2015-03-19 12:26:49 +0000 |
commit | eb54c8bf087f434b0cb91b35e7cde68a69ac9193 (patch) | |
tree | 341eb32253fad30cfc3a81e678ba4fb59ccfc56c /gdb/ChangeLog | |
parent | b90fc18880972f0c2ed280df20604d89f1d4ec38 (diff) | |
download | gdb-eb54c8bf087f434b0cb91b35e7cde68a69ac9193.zip gdb-eb54c8bf087f434b0cb91b35e7cde68a69ac9193.tar.gz gdb-eb54c8bf087f434b0cb91b35e7cde68a69ac9193.tar.bz2 |
native/Linux: internal error if resume is short-circuited
If the linux_nat_resume's short-circuits the resume because the
current thread has a pending status, and, a thread with a higher
number was previously stopped for a breakpoint, GDB internal errors,
like:
/home/pedro/gdb/mygit/src/gdb/linux-nat.c:2590: internal-error: status_callback: Assertion `lp->status != 0' failed.
Fix this by make status_callback bail out earlier. GDBserver is
already doing the same.
New test added that exercises this.
gdb/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* linux-nat.c (status_callback): Return early if the LWP has no
status pending.
gdb/testsuite/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* gdb.threads/continue-pending-status.c: New file.
* gdb.threads/continue-pending-status.exp: New file.
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r-- | gdb/ChangeLog | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 45e5029..7ae3c58 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2015-03-19 Pedro Alves <palves@redhat.com> + * linux-nat.c (status_callback): Return early if the LWP has no + status pending. + +2015-03-19 Pedro Alves <palves@redhat.com> + * linux-nat.c (select_event_lwp_callback): Update comment to no longer mention SIGTRAP. |