]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
record-btrace: fix assertion when enabling recording after re-run
authorMarkus Metzger <mmetzger@sourceware.org>
Tue, 26 Mar 2013 07:21:25 +0000 (07:21 +0000)
committerMarkus Metzger <mmetzger@sourceware.org>
Tue, 26 Mar 2013 07:21:25 +0000 (07:21 +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 c0f76b58bdc4e66181a6a19889352a4ff5ee9e3a..71276ed56f529f5458de2aa5db5f90e03647f5d0 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-22  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * exceptions.h (enum errors): New entry TARGET_CLOSE_ERROR.
index bbb0bd57df36dff5fc0691460b5561090b08025d..b875ed1dc7cc3efbacfdff47931ebb36ac89b8f1 100644 (file)
@@ -192,6 +192,10 @@ record_btrace_stop_recording (void)
 static void
 record_btrace_close (int quitting)
 {
+  /* 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 0eea15b5b2d97819decf706b8bfbe78f0f3462e8..e7330958b25bfbc715e798ad5c24b6704580118f 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-22  Jan Kratochvil  <jan.kratochvil@redhat.com>
            Pedro Alves  <palves@redhat.com>
 
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"