From 568e808b7d80a7613c1b6d94ff93dd517436b249 Mon Sep 17 00:00:00 2001 From: Markus Metzger Date: Tue, 3 Dec 2013 10:20:47 +0100 Subject: [PATCH] btrace: initiate teardown when closing record btrace target The to_teardown_btrace target method is used to free btrace resources during shutdown when target record has already been unpushed and we can't reliably talk to a remote target to disable branch tracing. Tracing resources are freed for each thread when the thread is removed; both on the GDB side and on the gdbserver side. In the remote case, the remote target that provides to_teardown_btrace to free the GDB side resources has already been unpushed when threads are destroyed. This results in a complaint "You can't do this ..." and in a few bytes of memory leaked for each thread. Initiate btrace teardown in record_btrace_close, so the remote target is still in place. 2014-01-27 Markus Metzger * record-btrace.c (record_btrace_close): Call btrace_teardown for all threads. --- gdb/ChangeLog | 5 +++++ gdb/record-btrace.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c949c02158..0c0a8b2656 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2014-01-27 Markus Metzger + + * record-btrace.c (record_btrace_close): Call btrace_teardown + for all threads. + 2014-01-27 Joel Brobecker * ada-lang.c: Remove "#ifdef UI_OUT" condition for including diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index 3a93fdbb9a..365b6be1c8 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -213,11 +213,16 @@ record_btrace_stop_recording (void) static void record_btrace_close (void) { + struct thread_info *tp; + /* 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. */ + /* We should have already stopped recording. + Tear down btrace in case we have not. */ + ALL_THREADS (tp) + btrace_teardown (tp); } /* The to_info_record method of target record-btrace. */ -- 2.34.1