record-btrace: fix assertion when enabling recording after re-run
authorMarkus Metzger <mmetzger@sourceware.org>
Tue, 26 Mar 2013 07:15:09 +0000 (07:15 +0000)
committerMarkus Metzger <mmetzger@sourceware.org>
Tue, 26 Mar 2013 07:15:09 +0000 (07:15 +0000)
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
gdb/record-btrace.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.btrace/enable.exp

index c0054b830523f18f27e3ec75a70bd86409233277..1233bd70a452c9cabbb5246ba1e04335d773acae 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-26  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record-btrace.c (record_btrace_close): Call
+       record_btrace_auto_disable.
+
 2013-03-25  Joel Brobecker  <brobecker@adacore.com>
 
        * rs6000-nat.c (fixup_breakpoints): Delete declaration.
index e85de5e50f8ce4cc66a222987e6947c4d8b05844..8fb413e4041b7c8ace05b880025dc974a069b325 100644 (file)
@@ -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.  */
 }
 
index ad4fd404833f886e0caca47b0e691128d1bae239..bff8f307275aede2a6adf643d6141c2fbecc2691 100644 (file)
@@ -1,3 +1,7 @@
+2013-03-26  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * gdb.btrace/enable.exp: Add regression test.
+
 2013-03-25  Tom Tromey  <tromey@redhat.com>
 
        * gdb.cp/m-static.exp: Add destructor-printing tests.
index f3acbf81cd59eee9323ac72f1baaaa4c616e3cb7..2e23e41d1146f94016429ae397d1084b78232e89 100644 (file)
@@ -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"