New developer's issues

Derek Atkins warlord at MIT.EDU
Tue May 3 09:16:25 EDT 2005


Geert Janssens <janssens.geert at> writes:

> * As I'm stepping through the creation of the Invoice Edit window, I have a 
> display of the Invoice Datastructure that is to be used to create the window. 
> With every step I do in the source, I see that the values of several of it's 
> member pointers change (sometimes indicating address out of bounds). Is this 
> normal behaviour ? It makes it very hard to read the values stored in there.

This usually implies some level of optimization from your compiler.
In particular, some objects and stack variables are not initialized
when you step into a new function; instead they take a few additional
instructions before they get fully initialized.

If you see this while you're clearly in the middle of a
function... THEN I would worry about it.

> * While stepping through the code, the cursor jumps up and down: instead of 
> just stepping from one source line to the next, it jumps two lines up, then 3 
This, too, reaks of compiler optimization.  I see this in gdb, too.

> The only compiler directives I see are:
> -g -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations 
> -Wdeclaration-after-statement -g -Wall -Wunused -Wmissing-prototypes 
> -Wmissing-declarations -Wdeclaration-after-statement
> So is there something else I can do to remove this behaviour ?

Hmm, there's usually a -O2 in there.  Weird.

> * By the way, the -O2 flag was configured automatically by configure, even 
> though I had passed --enable-debug as an option to

This is normal.  --enable-debug makes sure you have -g, but does not
turn OFF optimization.  Did you manually remove the -O2?  Did you
"make clean" after you made that change?  Did you "make install" after
you finished the "make"?

> 2. ddd as a graphical front-end is a bit distracting, because it is not really 
> intuitive. I would much rather use another front-end. What do other people on 
> this list use, apart from purely text based debugging ? Would it be possible 
> to use Anjuta's built-in front end ?

No idea.  I just use text-based gdb.

> 3. So far I have been tracing the Invoice creation and editing in G2. I 
> haven't been able (yet) to correct the crasher bug, but at least, I've 
> learned a lot about the working of the ledger, register, and invoice 
> mechanisms. However, my understanding of the gnome2 vs gnome1.x api 
> differences is lacking. Is there some good documentation on the web that 
> summarizes these differences well ? Some kind of a migration guide or such. I 
> do have the api references, but there's rather elaborate, and don't really 
> focus on what's different, but rather on what's in each api.

It's quite possible that not all the business stuff has been fully
translated to g2.  Unfortunately there isn't much of a migration
guide, I'm afraid.  Maybe some other people could pipe in with their
lists of things to look for?

> Thanks for the help.
> Geert Jan


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL:    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list