From 99c819eea0b33989b8482c8059a5df28c8fec8f4 Mon Sep 17 00:00:00 2001 From: Markus Metzger Date: Tue, 26 Mar 2013 07:15:09 +0000 Subject: [PATCH] record-btrace: fix assertion when enabling recording after re-run Reading symbols from /bin/true...(no debugging symbols found)...done. (gdb) b _start Function "_start" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (_start) pending. (gdb) r Starting program: /bin/true Breakpoint 1, 0x00000039a0400af0 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) rec b (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /bin/true Breakpoint 1, 0x00000039a0400af0 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) rec b gdb/record-btrace.c:154: internal-error: record_btrace_open: Assertion `record_btrace_thread_observer == NULL' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) gdb/ * record-btrace.c (record_btrace_close): Call record_btrace_auto_disable. testsuite/ * gdb.btrace/enable.exp: Add regression test. --- gdb/ChangeLog | 5 +++++ gdb/record-btrace.c | 4 ++++ gdb/testsuite/ChangeLog | 4 ++++ gdb/testsuite/gdb.btrace/enable.exp | 11 +++++++++++ 4 files changed, 24 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c0054b83052..1233bd70a45 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2013-03-26 Markus Metzger + + * record-btrace.c (record_btrace_close): Call + record_btrace_auto_disable. + 2013-03-25 Joel Brobecker * rs6000-nat.c (fixup_breakpoints): Delete declaration. diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index e85de5e50f8..8fb413e4041 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -192,6 +192,10 @@ record_btrace_stop_recording (void) static void record_btrace_close (void) { + /* Make sure automatic recording gets disabled even if we did not stop + recording before closing the record-btrace target. */ + record_btrace_auto_disable (); + /* We already stopped recording. */ } diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index ad4fd404833..bff8f307275 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-03-26 Markus Metzger + + * gdb.btrace/enable.exp: Add regression test. + 2013-03-25 Tom Tromey * gdb.cp/m-static.exp: Add destructor-printing tests. diff --git a/gdb/testsuite/gdb.btrace/enable.exp b/gdb/testsuite/gdb.btrace/enable.exp index f3acbf81cd5..2e23e41d114 100644 --- a/gdb/testsuite/gdb.btrace/enable.exp +++ b/gdb/testsuite/gdb.btrace/enable.exp @@ -82,3 +82,14 @@ if ![runto_main] { if ![runto_main] { return -1 } + +# make sure record-btrace can be enabled after re-run +clean_restart $testfile +if ![runto_main] { + return -1 +} +gdb_test_no_output "record btrace" +if ![runto_main] { + return -1 +} +gdb_test_no_output "record btrace" "enable after re-run" -- 2.30.2