Regression with default scheduler-locking=step [Re: [pushed] Consecutive step-overs trigger internal error.]

Message ID
State Not applicable

Commit Message

Jan Kratochvil June 17, 2014, 7:24 p.m. UTC
  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 <>
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/".^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.



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[] = {
-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)