This is the mail archive of the
mailing list for the GDB project.
Re: using gdb to do embedded unit/regression testing
- From: Michael Snyder <msnyder at vmware dot com>
- To: "ebo at sandien dot com" <ebo at sandien dot com>
- Cc: "gdb at sourceware dot org" <gdb at sourceware dot org>
- Date: Mon, 03 Nov 2008 11:19:07 -0800
- Subject: Re: using gdb to do embedded unit/regression testing
- References: <firstname.lastname@example.org>
I have a simple proof of concept which does simple live inplace
unit/regression testing on embedded hardware via a JTAG interface. To really
make gdb work for this context I will either have to use "More complex GDB
scripting" and/or modify gdb's command line interface and print command.
You should check out src/gcc/testsuite. The gcc testsuites on
embedded targets are all set up to use gdb as an execution engine.
And you get to use dejagnu as your scripting language (lucky you).
The current issue at hand is that `print "STRING"` only works if the program
is running AND gdb can interface with malloc. On the embedded project which I
am currently testing this idea out, malloc is not available and the print
command returns an error. What I was trying to do is simply write some
diagnostic comments to help orient myself when reading the output from gdb
which was piped to a file. If there is some other way to write diagnostic
strings to stdout other than `print "STRING"` which does not require some call
to malloc? If so please let me know. I have not seen anything like this in
the documentation yet.
Yeah, we've all run into that.
Use gdb "echo", rather than print.
Doesn't help if you have variables, but for simple diagnostics it's ok.
The second issue will be cleaning up and formatting the output from the
automated unit/regression test suites. For this I will want/need to suppress
almost all output from gdb, and use the print command above to deal with the
formatting. If I end up using gdb to help do this type of eXtreme/Agile
program testing I would like to work with the gdb maintainers to have it
I think you want dejagnu.