diff options
Diffstat (limited to 'tools/xentrace')
-rw-r--r-- | tools/xentrace/xentrace.c | 18 |
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(); |