1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
GRASS Debugging:
Print debugging message if variable DEBUG
is set to level equal or greater
g.gisenv set="DEBUG=3"
Levels: (recommended levels)
* 0 - silence
* 1 - message is printed once or few times per module
* 3 - each row (raster) or line (vector)
* 5 - each cell (raster) or point (vector)
Further hints:
> How can I force gcc, to complain about missing header file?
'-Wimplicit-function-declaration'
'-Werror-implicit-function-declaration'
Give a warning (or error) whenever a function is used before being
declared.
----------------------------------------------------
To debug TCL code, run (example):
GRASS:~> g.gisenv set="DEBUG=1"
GRASS:~> d.text.freetype > dtf_tcl.txt
then edit 'dtf_tcl.txt' to remove the "| wish &" from the end.
then '. dtf_tcl.txt > dtf.tcl' to get rid of the echo-proofing chars.
then 'wish < dtf.tcl' to test it.
References:
"Is white space significant in Tcl" http://wiki.tcl.tk/981
"Tcl quoting hell" http://wiki.tcl.tk/1726
"1 minute intro to tcl" http://www.pconline.com/~erc/tcl.htm
----------------------------------------------------
To make gcc less tolerant in accepting errors and code flaws, compile
with:
export CFLAGS='-g -ansi -Wall -D_BSD_SOURCE=1 -D_SVID_SOURCE=1 -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=199506L'
Also nice to emulate gcc/MacOSX compiler:
CFLAGS='-fno-common'
----------------------------------------------------
A good idea is maybe to use '-Wall -Werror' for the gcc options. This means
it treats the warnings as errors, i.e. it stops on them. So you have time
to read them then.
The gcc switch -Wimplicit-function-declaration (implied by -Wall) should
report missing prototypes (use -Werror-implicit-function-declaration to
make it an error rather than a warning).
The linker switch --warn-common (e.g. LDFLAGS='-Wl,--warn-common') might
be useful for catching multiply-defined symbols.
----------------------------------------------------
C Code debugging:
1) Graphical debugger
ddd `which r.plane`
RUN -> here enter Parameters/Flags
2) Text/CMD line debugger
gdb `which r.plane`
r <flags> <parameters>
bt
----------------------------------------------------
Debugging on Mac OS X
The 'ldd' command doesn't exist, but
otool -L
does almost the same job.
|