This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] btrace: initiate teardown when closing record btrace target
- From: Markus Metzger <markus dot t dot metzger at intel dot com>
- To: jan dot kratochvil at redhat dot com
- Cc: gdb-patches at sourceware dot org
- Date: Mon, 20 Jan 2014 10:00:21 +0100
- Subject: [PATCH] btrace: initiate teardown when closing record btrace target
- Authentication-results: sourceware.org; auth=none
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-20 Markus Metzger <markus.t.metzger@intel.com>
* record-btrace.c (record_btrace_close): Call btrace_teardown
for all threads.
---
gdb/record-btrace.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index 3a93fdb..365b6be 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. */
--
1.8.3.1