-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Derek Ragona wrote: > At 05:10 PM 3/14/2008, Doug Hardie wrote: >> I have a program I was testing with gdb. I was trying to figure out >> why c.rmonths was always zero when it should have been 6. Stepped >> through using the gdb n command. Here is the output: >> >> (gdb) >> 215 c.rmonths = (edate - tdate) / toMONTHS; >> (gdb) >> 223 c.dial_in = u.dial_in[0]; >> (gdb) >> 224 c.dsl = u.dsl[0]; >> (gdb) p c.rmonths >> $1 = 0 >> (gdb) p c >> $2 = {fa = 0, pwp = 0, disp_email = 0, imonths = 0, rmonths = 6, >> type = 73 'I', cd = 0 '\0', dial_in = 82 'R', dsl = 0 '\0', >> dsl_kit = 0 '\0', ip = 0 '\0', domain = 0 '\0', n_domain = 0 '\0', >> renewal = 89 'Y', program = "I\000\000"} >> (gdb) p c->rmonths >> $3 = 6 >> (gdb) p c.rmonths >> $4 = 6 >> >> >> Notice, the first time i print it its zero. The second time its 6. >> What gives here? I have seen this before but couldn't pin it down. >> The program is not compiled with any optimization. It is in a shared >> library though. > > It is hard to tell without the code you used. I would put some printf's > in the code and see what and when that variable gets set to in actual > running code.
2points: (1) yes, you are right, without the source code, any guesses are at the same level as black magic, useless (2) if the user is learning to use gdb, then it is really bad manners to suggest that printfs should be used. While I have made massive use of printfs before I got used to gdb, gdb is incredibly more powerful, can do any and all that any prints might accomplish, and anyone who is willing to learn to use that debugger should be encouraged, not given bad habits that really should be a fallback only to environments where gdb won't work. > > -Derek > -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFH3AE2z62J6PPcoOkRAsOeAJ9ZcF4K9Rtonrw5oQXVF3opoxvBjgCcDGJR szL8DpVrdPjMMpV4+I+bTg0= =RKOo -----END PGP SIGNATURE----- _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"