This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Why running the next command will jump back to the previous line position

Hi, I have just a question post on GDB maillist, and some gdb guys thought it was related to GCC.
so I forward my question to this maillist.


Hi, I'm using MinGW 4.6.2 and GDB cvs head under Windows XP.

When debugging a sample program: (I build it with -g, and no optimization option is used)


int main()
    std::map<int, std::string>  m;
    m[0] = "000";
    m[1] = "111";
    for( int i = 0; i<  3; i++)
        m[i] = "ssss";
    return 0;

If I continuously run the command "next" under gdb, I found that when I hit the statement "return 0", if I run "next" again, It will take me backward to the line "std::map<int, std::string> m;". If I run the "next" again, the instruction will go forward the closing bracket of the main function body.

This was quite strange, it looks like the instruction will return to some previous position. (I guess that the destructor of the "std::map" was called.

My question is: This behavior is quite anti-friendly, because if I'm debugging a large function, I always get the instruction line back to where some local variable (automatic variable) was defined.

Is it possible to solve it. I don't want the instruction line go backward when I leave some scope.


ollydbg from codeblocks' forum

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]