Hi Gordon,
(I cc this to "grass5" to get the other informed)
On Fri, Dec 14, 2001 at 12:14:30PM -0700, gordon.haverland@gov.ab.ca wrote:
Hello Markus,
Well, I've been working on v.out.e00 for about a week now, and I think I
need a day or so to think about things.Yes, there are some bugs in the existing code. In fact, I am pretty
sure that the code submitted never ran on any architecture (let alone this
Intel Linux machine). However, there is something else going on with the
code that I am having problems tracking down.In the code before the "calculation" of the Universe polygon, is a
branch of code which builds the doubly linked list which is searched to
build the polygon and also has: if( map.Link[i].left < 0 ) {
map.Link[i].left = 1;
} else {
map.Link[i].left += 1;
}
and similar for right. I've tried 4 or 5 variations on writing that chunk
of code dealing with the renumbering of map.Link[i].(right|left) now. If
I put fprintf(stderr,"...") statements before and after that code, I get
the similar result as if I have no fprintf()s there. That is, the if left
is less than 0, that left is multiplied by -1. Sometimes right gets set to
1 and sometimes it is left alone. However, if I put fprintf()s between
the right and left chunks of code, now it renumbers left and right
correctly. Which seems to me to be a compiler bug. However, it may be a
problem with the vector library, because almost every line read from a
grass vector file comes out with lines which consist of a single node
pointing to itself (N1 almost always equals N2).It would be a LOT easier to follow what is going on, if I could do this
debugging inside emacs with gdb, instead of using a zillion fprintf
statements. Do you know how I can arrange to run GRASS binaries inside
GDB? Do I have to compile all of grass with
-ggdb?Have a great weekend!
Gordon Haverland
Please have a look at
documents/debugging.txt
in the source code. It tells you how to debug with GDB. I assume that
you have been trying to debug
$GISBASE/bin/module
which is only a hard-link to front-end. The real binary which is
happily accepted by a debugger lives in
$GISBASE/etc/bin/cmd/module
Of course "-g" is required (and no "-s").
Hope this helps,
you fixes will be appreciated!
Markus
PS: Please be sure to work on the latest code in CVS (release branch).
It is also included in the CVS snapshot.