Re: Debugging with no serial port
From: Ben Warren <hidden>
Date: 2006-08-10 19:28:02
Tim, How about something a bit simpler like running gdb within a 'script' context, which will log your session to a file. Get gdb to print the variables to the screen (using 'print' or whatever), wrap your data with easily searchable characters (eg. ***data1 data2 data3***), then filter your data from the script file with sed/awk or perl scripts? A bit brute force, but bound to work. regards, Ben On Thu, 2006-08-10 at 10:14 -0700, Martin, Tim wrote:
This may be more of a question for GDB folks...but I'll post it here
because it relates to embedded systems as well.
I'm trying to validate some signal processing software on an embedded
Virtex4 PowerPC 405. Basically, the validation consists of calling
functions and looking at their outputs. Over time, there are several
thousand numbers to look at, so manually looking at each number at a
break point would be very time consuming (to put it mildly).
The normal way I would go about doing this is to print out the data
(e.g. to a serial port) and post-process the data somewhere else. But
on this particular target, I don't have a serial port. So I thought
about using GDB's breakpoint command list feature. When the software
has data it wants to print out, it calls a function "log_stuff". I
then set a breakpoint and command list in the "log_stuff" function,
which writes out the variables I'm interested in checking out to a
file named outputfile.bin. E.g. the following command file does this:
break log_stuff
commands
silent
if (variable_logging_enabled)
append value outputfile.bin stuff1_variable
append value outputfile.bin stuff2_variable
end
cont
end
The problem I have with this approach is that GDB doesn't finish
writing out everything before it continues executing the program, so a
backlog develops. So my first question would be, is there some GDB
"flush" like command I could run before the cont statement?
Second question would be - is there an easier way to accomplish what
I'm trying to do, which is basically emulate a serial port with GDB.
Tim
_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded