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.
This commit is contained in:
Markus Metzger 2013-03-26 07:15:09 +00:00
parent ffd65175b8
commit 99c819eea0
4 changed files with 24 additions and 0 deletions

View 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.

View 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. */
}

View 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.

View 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"