aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xentrace
diff options
context:
space:
mode:
Diffstat (limited to 'tools/xentrace')
-rw-r--r--tools/xentrace/xentrace.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/tools/xentrace/xentrace.c b/tools/xentrace/xentrace.c
index 7f63e7fc9d..18283f3e97 100644
--- a/tools/xentrace/xentrace.c
+++ b/tools/xentrace/xentrace.c
@@ -634,6 +634,8 @@ static int monitor_tbufs(void)
unsigned long data_size;
+ int last_read = 1;
+
/* prepare to listen for VIRQ_TBUF */
event_init();
@@ -712,14 +714,22 @@ static int monitor_tbufs(void)
}
if ( interrupted )
- break;
+ {
+ if ( last_read )
+ {
+ /* Disable tracing, then read through all the buffers one last time */
+ if ( opts.disable_tracing )
+ disable_tbufs();
+ last_read = 0;
+ continue;
+ }
+ else
+ break;
+ }
wait_for_event_or_timeout(opts.poll_sleep);
}
- if ( opts.disable_tracing )
- disable_tbufs();
-
if ( opts.memory_buffer )
membuf_dump();