This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] record-btrace: fix assertion when enabling recording after re-run


This fixes the following problem:

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)

CC: Christian Himpel <christian.himpel@intel.com>
2013-03-25  Markus Metzger  <markus.t.metzger@intel.com>

	* record-btrace.c (record_btrace_close): Call
	record_btrace_auto_disable.

gdbserver/
	* gdb.btrace/enable.exp: Add regression test.


---
 gdb/record-btrace.c                 |    4 ++++
 gdb/testsuite/gdb.btrace/enable.exp |   11 +++++++++++
 2 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index e85de5e..8fb413e 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/gdb.btrace/enable.exp b/gdb/testsuite/gdb.btrace/enable.exp
index f3acbf8..2e23e41 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"
-- 
1.7.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]