Hello Yao, thank you for review, I have updated patch based on your recommendations. Please see attached file. And you are right this patch depends on my previous patch PATCH fix start-time and stop-time in trace-status http://sourceware.org/ml/gdb-patches/2012-09/msg00621.htm Thank you, Dmitry On 10/08/2012 04:47 PM, Yao Qi wrote: > On 10/03/2012 10:09 PM, Dmitry Kozlov wrote: > > In general, I think it is useful to include these attributes in > tracefile saved by command 'tsave'. > >> 2012-10-03 Dmitry Kozlov >> >> * tracepoint.c (trace_save): Add saving starttime, stoptime, user >> and notes. >> >> diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c >> index 0f94150..f7e96eb 100644 >> --- a/gdb/tracepoint.c >> +++ b/gdb/tracepoint.c >> @@ -3036,6 +3036,24 @@ trace_save (const char *filename, int >> target_does_save) >> fprintf (fp, ";disconn:%x", ts->disconnected_tracing); >> if (ts->circular_buffer) >> fprintf (fp, ";circular:%x", ts->circular_buffer); >> + if (ts->start_time) >> + fprintf (fp, ";starttime:%ld%06ld", (long int) (ts->start_time / >> 1000000), (long int) (ts->start_time % 1000000)); > > This line is too long... > >> + if (ts->stop_time) >> + fprintf (fp, ";stoptime:%ld%06ld", (long int) (ts->stop_time / >> 1000000), (long int) (ts->stop_time % 1000000)); > > and this line. > >> + if (ts->notes) > > ts->notes will never be NULL, because GDBserver will always send > "notes:" in qTStatus packet (See gdbserver/tracepoint.c:cmd_qtstatus), > but other stubs may don't include "notes:" in qTStatus packet, so we > may do the check here like this, > > if (ts->notes && ts->notes[0] != 0) > >> + { >> + char *buf = (char *) alloca (strlen (ts->notes) * 2 + 1); > > We need a blank line here. Looks 'alloca' is not encouraged to use, > and it should be replaced with xmalloc/xfree. > > [PATCH] Replace potentially unsafe alloca with xmalloc/xfree in > value_concat > http://sourceware.org/ml/gdb-patches/2012-09/msg00274.html > >> + bin2hex ((gdb_byte *) ts->notes, buf, 0); >> + fprintf (fp, ";notes:%s", buf); >> + >> + } >> + if (ts->user_name) >> + { >> + char *buf = (char *) alloca (strlen (ts->user_name) * 2 + 1); > > Likewise. > >> + bin2hex ((gdb_byte *) ts->user_name, buf, 0); >> + fprintf (fp, ";username:%s", buf); >> + >> + } >> fprintf (fp, "\n"); >> >> /* Note that we want to upload tracepoints and save those, rather > > Logically, this patch depends on your previous patch > > PATCH fix start-time and stop-time in trace-status > http://sourceware.org/ml/gdb-patches/2012-09/msg00621.html > > otherwise, we generate start-time and stop-time in trace file in > decimal format, while gdb still interprets it as hex.