Hi, I am trying to get the tracedump of all local variables
in a function using the gdb tracepoint functionality. Here are the steps I followed
Started gdbserver on port 1234 ("test" is
an executable)
address@hidden test]$ gdbserver :1234 ./test Process ./test created; pid = 17004 Remote debugging from host 127.0.0.1
in another terminal started gdb
address@hidden test]$ gdb test GNU gdb 5.3 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public
License, and you are welcome to change it and/or distribute copies of it
under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type
"show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... (gdb) target remote :1234 Remote debugging using :1234 0x40000be0 in ?? () (gdb) trace *myfunc
(setting trace for myfunc function) Tracepoint 1 at 0x8048328: file test.c, line 1. (gdb) actions Enter actions for tracepoint 1, one per line. End with a line saying just "end". > collect $locals
(collect the local variables) > end (gdb) tstart
(trace start) Target does not support this command. (gdb)
tstart giving this error message (Target does not
support this command). I am trying this on Redhat 9 (i386), gdb 5.3 version.
Here are my observations when I looked the source code of gdb 5.3. There
exist a function trace_start_command which calls putpkt("QTinit")
and in the gdbserver code this packet "QTinit" is getting parsed.
In the server side the packet "Q" handling function does not
exist... which inturn makes it to throw the above said message.
Am I doing something wrong here or the tracing support
is not there on that version of gdb. Please do advice me in fixing this
issue.