zsyzhou 发表于 2015-4-24 07:33:50

Codeblocks调试STL——gdb with python support

一、Codeblocks调试STL的问题:
  不管你是Windows还是Linux的C/C++程序员,C::B都是一个非常不错的集成开发环境,如果你经常使用STL,你会发现C::B对STL的调试支持很差,其实这并不是Codeblocks的问题,而是GDB本身对STL的支持太差。我们可以看到下图情况:

  
  但是对于一些复杂程序我们有时不得不使用调试观察程序运行情况,然而而STL又是我们编写C++程序一个不可缺少的工具,那我们该如何是好呢?有一个很笨的,但是万能的调试方法,就是输出调试,如果熟练这种调试方法会让我们非常迅速找到BUG,但是对于学习他人程序,以及大多数程序员来说但不调试还是有必要的,所以这里介绍一下怎么用python脚本来支持GDB,从而达到完美支持调试STL的目的。
二、如何在Codeblocks下使用:
  1、我们可以在http://qp-gcc.googlecode.com/files/gdb-7.2.7z(MinGW GDB build with python support, also include wx and stl pretty printer 2010-09-05更新),这个打包文件已经包含了所有需要用到的python的文件,所以你不需要再下载python运行环境。也可以在http://code.google.com/p/qp-gcc/downloads/list下载最新的GDB以及wx and stl pretty printer。
  2、将下载的文件解压并复制到“X:Program Files\CodeBlocks\MinGW\bin\”中。
  3、让C::B启动调试时加载python脚本。如果你用的也是10.05版本的C::B,那么我们可以进入Debugger Setting如下:

  
  我们在Debugger intialization commands文本框中填入如下格式的命令:
source $(TARGET_COMPILER_DIR)bin\stl.gdb
source $(TARGET_COMPILER_DIR)bin\wx.gdb   如果我们把C::B安装在Windows的D:\Program Files\目录下,我们可以这样写命令:
source D:\Program Files\CodeBlocks\MinGW\bin\stl.gdb   
source D:\Program Files\CodeBlocks\MinGW\bin\wx.gdb   通过更改后我们再调试会看到下图的效果:

  4、好好享受C::B一爽到底的STL调试吧!
四、参考:
  同时,你如果想了解的更多,可以参考如下内容:

[*]About python gdb scirpt support
[*]http://code.google.com/p/qp-gcc/
页: [1]
查看完整版本: Codeblocks调试STL——gdb with python support