Hello,

I think i already mentioned the following issue several months ago ... but
just noticed this again. And considering 4.0 is coming up soon, I really
think this ought to be fixed.

see the following testcase:

#include <stdio.h>

int
main(int argc, char **argv)
{
        int     i = 0;

        for (i = 0; i < 10; i++)
                fprintf(stderr, "i = %d\n", i);

        return 0;
}

Compiling this program with -ggdb will give normal results (a list of i =
0, upto i = 9). However when running the program through gdb Every Value
you can print is completely Bogus, which makes debugging impossible.

Things like the following will happen:

(gdb) break main
Breakpoint 1 at 0x804841e: file gdbtest.c, line 6.
(gdb) run
Starting program: /home/daeron/./gdbtest 

Breakpoint 1, main (argc=-1077937360, argv=0x2805e100) at gdbtest.c:6
6               int     i = 0;
(gdb) 
(gdb) next
8               for (i = 0; i < 10; i++)
(gdb) 
9                       fprintf(stderr, "i = %d\n", i);
(gdb) print i
$1 = -1077937368


Notice the completely bogus value of argc, and the same goes for i.
the program still outputs the correct values, just requesting them from gdb
is broken.

Fortunately you can compile it with -g only and GDB Will work properly ...
but -ggdb is a flag i encounter quite often for debugging purposes.


-- 
--------------------
  Pascal Hofstee - [EMAIL PROTECTED]

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS d- s+: a-- C++ UB++++ P+ L- E--- W- N+ o? K- w--- O? M V? PS+ PE Y-- PGP--
t+ 5 X-- R tv+ b+ DI D- G e* h+ r- y+
------END GEEK CODE BLOCK------


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to