This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Regression with default scheduler-locking=step [Re: [pushed] Consecutive step-overs trigger internal error.]
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Tue, 17 Jun 2014 21:24:06 +0200
- Subject: Regression with default scheduler-locking=step [Re: [pushed] Consecutive step-overs trigger internal error.]
- Authentication-results: sourceware.org; auth=none
- References: <1398191068-7631-1-git-send-email-palves at redhat dot com>
On Tue, 22 Apr 2014 20:24:28 +0200, Pedro Alves wrote:
> Tested on x86_64 Fedora 17, native and gdbserver, and also native on
> top of my "software single-step on x86_64" series.
483805cf9ea5a6dace41415d8830e93fccc49c43 is the first bad commit
commit 483805cf9ea5a6dace41415d8830e93fccc49c43
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 22 15:00:56 2014 +0100
Consecutive step-overs trigger internal error.
(gdb) next^M
[Thread 0x7ffff7fda700 (LWP 27168) exited]^M
[New LWP 27168]^M
[Thread 0x7ffff74ee700 (LWP 27174) exited]^M
process 27168 is executing new program: /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.threads/thread-execl^M
[Thread debugging using libthread_db enabled]^M
Using host libthread_db library "/lib64/libthread_db.so.1".^M
infrun.c:5225: internal-error: switch_back_to_stepped_thread: Assertion `!schedlock_applies (1)' failed.^M
A problem internal to GDB has been detected,^M
further debugging may prove unreliable.^M
Quit this debugging session? (y or n) FAIL: gdb.threads/thread-execl.exp: get to main in new image (GDB internal error)
Resyncing due to internal error.
The regressions happens only with the attached patch which I am not sure if it
is considered as a valid FSF GDB regression or not but I think it is.
Jan
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 47604c7..3f0d46b 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -1661,7 +1661,7 @@ static const char *const scheduler_enums[] = {
schedlock_step,
NULL
};
-static const char *scheduler_mode = schedlock_off;
+static const char *scheduler_mode = schedlock_step;
static void
show_scheduler_mode (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)