Difference between revisions of "Debugging with Code::Blocks"
MortenMacFly (talk | contribs) (Explain debugging Contructors/Destructors) |
MortenMacFly (talk | contribs) m (Inform about Re-Compilation) |
||
Line 1: | Line 1: | ||
− | Make sure that the project is compiled with the -g compiler option. This ensures that the executable has debug symbols included. Please notice that for other compilers than GCC this might be a different switch. | + | Make sure that the project is compiled with the -g compiler option. This ensures that the executable has debug symbols included. Keep in mind that you may have to '''re'''-build your project as up-to-date object files might not being re-compiled otherwise. Please notice that for other compilers than GCC this might be a different switch. |
Menu => Project => Build Options | Menu => Project => Build Options | ||
Line 37: | Line 37: | ||
} | } | ||
...and place a breakpoint in "DebugCtorDtor" at the line "int i = 0; // Dummy". The debugger will break at that line. If you go step-wise then (Menu Debug -> Next Line; or alternatively F7) you'll reach the code in the contructor/destructor (is_initialised = true/false). | ...and place a breakpoint in "DebugCtorDtor" at the line "int i = 0; // Dummy". The debugger will break at that line. If you go step-wise then (Menu Debug -> Next Line; or alternatively F7) you'll reach the code in the contructor/destructor (is_initialised = true/false). | ||
+ | Last edited: [[User:MortenMacFly|MortenMacFly]] 02:52, 26 October 2006 (EDT) |
Revision as of 06:52, 26 October 2006
Make sure that the project is compiled with the -g compiler option. This ensures that the executable has debug symbols included. Keep in mind that you may have to re-build your project as up-to-date object files might not being re-compiled otherwise. Please notice that for other compilers than GCC this might be a different switch.
Menu => Project => Build Options
Open The Debugger Watches Window
Find the line containing the variable to be watched. Set a breakpoint in a position that will allow you to observe the variable value.
Menu => Debug => Toggle Breakpoint
Run the debugger until the breakpoint is reached. Right click the variable to set a watch in the Watch Window.
Notes:
Breakpoints may also be toggled with a left click in the left editor margin.
Breakpoints do not work in constructors or destructors. They do, however, work in routines called from them. This is a GDB restriction, not a bug. So you could do something like:
MyClass::MyClass() { DebugCtorDtor(); is_initialised = true; } MyClass::~MyClass() { DebugCtorDtor(); is_initialised = false; } MyClass::DebugCtorDtor() { int i = 0; // Dummy }
...and place a breakpoint in "DebugCtorDtor" at the line "int i = 0; // Dummy". The debugger will break at that line. If you go step-wise then (Menu Debug -> Next Line; or alternatively F7) you'll reach the code in the contructor/destructor (is_initialised = true/false). Last edited: MortenMacFly 02:52, 26 October 2006 (EDT)