Debugging with Code::Blocks

Build debug version of your project

Make sure that the project is compiled with the -g ( symbols) compiler option on, and the -s (strip symbols) option off. This ensures that the executable has debug symbols included.

首先你要确认编译选项 -g是打开的,-s是关闭的(strip会把debug信息清除)

Compiler optimization switches should be turned off, stripping symbols (-s) must be turned off.

Keep in mind that you may have to re-build your project as up-to-date object files might not be re-compiled with -g otherwise. Please be aware that in compilers other than GCC, -g and/or -s might be a different switch (-s might not ba available at all).

Menu => Project => Build Options

Set Project Build Options

Add Watches

Open The Debugger Watches Window

Open Watch Window

The list of watches can be saved to a file and later re-loaded. To do so, right click in the list of watches and select “save watch file” (and “load watch file” to re-load them again).

Image:Save watch.png

Set Breakpoints

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

Choose Watch Variable

Run the debugger until the breakpoint is reached. Right click the variable to set a watch in the Watch Window.

Breakpoints may also be toggled with a left click in the left editor margin.

Notes on Setting Breakpoints

在设置断点上的一些注释:

Update to the newest version of

From gdb 6.8 released on April 2008, it supports many features which does not exist in early versions. You can update by installing binaries from TDM-Mingw package.

Limits on the early version of

If your are still using the and gdb 6.7 from 8.02 setup files, setting breakpoints in the constructor can not work. Here are some tricks.

Breakpoints do not work in constructors or destructors in GDB 6.7 and earlier version. They do, however, work in routines called from them. This is an early GDB restriction, not a bug. So you could do something like:

Debugging ctor/dtor

…and place a breakpoint in “DebugCtorDtor” at the line “int i = 0;” . The debugger will break at that line. If you then step the debugger (Menu Debug => Next Line; or alternatively F7) you’ll reach the code in the contructor/destructor (”is_initialised = true/false;”).

原文地址:http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks

 

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • RSS
  • Slashdot
  • Technorati
  • TwitThis

Related posts:

  1. Debugging With CodeLite - CodeLite调试简介
  2. Setting up Code::Blocks to work with SDL - 多媒体编程库
  3. Code::Blocks Debug Shortcut and Example
  4. QT4+MinGW+Code::Blocks IDE集成
  5. Code::Blocks IDE: 手动安装和配置编译器指南
  6. Code::Blocks + Qt体验
  7. Code::Blocks IDE in openSUSE 11.1编译和安装指南
  8. C::B IDE的命令行参数
  9. ProjectManager, Project and ProjectFile in Code::Blocks
  10. Code::Blocks编译skyeye步骤

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Contact us

Admin: Bryan Wu