xentrace: Don't append trace on existing file.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 4 Dec 2007 10:17:32 +0000 (10:17 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 4 Dec 2007 10:17:32 +0000 (10:17 +0000)
When you run "xentrace -e <mask> trace.output" the first time, all is
fine. When you run it a second time, then the data is appended which
makes you reading old data with xentrace_format and you interprete it
as new data. This usually happens when you automated tracing guests
with xentrace and xentrace_format with a script.

Therefore, attached patch makes xentrace to truncate the file to zero
bytes before writing any data.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
tools/xentrace/xentrace.c

index d6fa93e4364a723404c0f158341d8e3d5f98eef3..26415bdb7d728096aa55ec64110452d015ad5aae 100644 (file)
@@ -572,24 +572,24 @@ int main(int argc, char **argv)
 
     parse_args(argc, argv);
     
-    if (opts.evt_mask != 0) { 
+    if ( opts.evt_mask != 0 )
         set_mask(opts.evt_mask, 0);
-    }
 
-    if (opts.cpu_mask != 0) {
+    if ( opts.cpu_mask != 0 )
         set_mask(opts.cpu_mask, 1);
-    }
 
     if ( opts.outfile )
-        outfd = open(opts.outfile, O_WRONLY | O_CREAT | O_LARGEFILE, 0644);
+        outfd = open(opts.outfile,
+                     O_WRONLY | O_CREAT | O_TRUNC | O_LARGEFILE,
+                     0644);
 
-    if(outfd < 0)
+    if ( outfd < 0 )
     {
         perror("Could not open output file");
         exit(EXIT_FAILURE);
     }        
 
-    if(isatty(outfd))
+    if ( isatty(outfd) )
     {
         fprintf(stderr, "Cannot output to a TTY, specify a log file.\n");
         exit(EXIT_FAILURE);