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