Hi, I have some problem using GCC and GDB, you know, the current GDB has python pretty printer enabled, so that the variables can be show quite nicely.

My problem is when gdb try to show some variable that is not initialized. For example:

void test()
{
    std::string stdStr("std::string");
    stdStr.append(" value");
    std::map<int, std::string> m;
    m[0] = "000";
    m[1] = "111";
}

If I set a breakpoint in the first line of test function, and send command "info local" to gdb, then gdb get crashed. That is because GDB regard every local variables are initialized,then the associated python pretty printer code was executed. In fact, in this situation, none of the local variables were initialized, then gdb or python may access to some random numbers, and it get crashed.

My question is: Is there any possible that GCC can emit some debug information to indicate that one variable is initialed or not.(at least in the DEBUG build mode)

So that gdb can firstly check if this variable is already initialed, other wise, it will give some tip that "this variable is not initiated yet"

You can see two related discussions at
http://sourceware.org/bugzilla/show_bug.cgi?id=11407
and
http://forums.codeblocks.org/index.php/topic,12747.msg86349.html#msg86349

Thanks

asmwarrior ollydbg from codeblocks' forum

Reply via email to