[LCP]Printing a Variables Value..!!!

robert at ncdesigns.net robert at ncdesigns.net
Tue Jun 24 04:41:02 UTC 2003


On Mon, 23 Jun 2003, Mike and/or Penny Novack wrote:

> ARE there "stock" C debuggers with "batch mode" capabilities?
> 


"stock" is dependent on the OS/platform that your using. Since this board 
has a Linux slant, then yes, you can use the GNU debugger if your using 
the stock GNU C/C++ compiler. Do a search for "gdb", and of course anyone 
knows that you need debugging symbols for this to work, i.e. "-g" compiler 
flag. Now for anyone interested in profiling, there is another program 
called "gprof" which profiles your code if you enable some extra profile 
information. Compile with the "-pg" flags. Do not do this on production, 
since every execution of your binary will drop a "gmon.out" file in your 
current working directory. This datafile is then fed into the profiler. 
There is even a way that if you code execute in 1.23 seconds, that you can 
run it 1-n times and collate the results over a larger set.

Now that we're talking about using "stock" Linux compilers, gcc has some 
other nice features built-in.


#ifdef DEBUG
FILE *debug_fp; // Or could be a lowlevel FD or whatever...I don't care
#define DEBUG_MSG(message)    print_debug_info(__FILE__, __LINE__, MESSAGE)

void *print_debug_info( int line, char *filename, char *message )
{
    fprintf(debug_fp, "(%s:%d) %s", filename, line, message);
}
#endif

so you can sprinkle DEBUG_MSG all around your code and compile with the 
-DDEBUG flag.

DEBUG_MSG("achar = %c, astring = %s, etc...",achar,astring...);

Then in production, compile without that flag, and all your message 
disappear.

Do things like this, and who needs a debugger. And who needs a profiler? 
just add timing code around critical sections...basically build yourself a 
simple timer for your functions. Hmmm....maybe even output your data in 
gplot format to provide upper managers with pretty pictures of your 
execution time...and time savings with a little proper optimization 
learned from this board maybe? :) 

BTW: Upper managers love these pretty graphs, it gives them warm fuzzies.


Robert





More information about the linuxCprogramming mailing list