GDB Python pretty printers

转自:http://lumiera.org/documentation/technical/howto/DebugGdbPretty.html


Since some time, GDB supports Python written extension modules, especially for pretty printing of data structures. A selection of pre-defined pretty printers for STL containers is part of the standard distribution. The graphical debugger frontend provided by the Eclipse CDT automatically uses this debugger provided presentation to show the value of variables in the detail pane of the variables view. The most recent version of CDT (Version 8 for Eclipe 3.7 »Indigo«) is even able to populate the structure view based on the python pretty printer’s output, which is a big step ahead towards easy debugging of more elaborate data structures based on STL containers.

Installation notes

This feature requires an python enabled GDB (>6.8.50). Actually, even the most recent stable GDB (Version 7.2) is recommended, because it contains some relevant bugfixes. Debian users might want to backport the the GDB package from Debian/Wheezy (GDB-7.2). Moreover, you need to check out and install a recent version of the python pretty-printers from the GNU Subversion repository:

#
# .gdbinit : GDB Config file
#
# 3/2010 - Ichthyo: add python pretty printers for STL

python
import sys
sys.path.insert(0, '/opt/gdb/stlPrettyPrinter')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

For more informations see here..

Hello World
#include <iostream>
#include <string>
#include <vector>

using std::string;
using std::cout;
using std::endl;


int
main (int, char**)
  {
    std::string str = "hullo wöld";
    std::vector<int> vec (1000);

    for (uint i = 0; i < vec.size(); ++i)
        vec[i] = i;

    cout << str <<  "\n.gulp.\n";
    return 0;
  }

When selecting the string or the vector in the Eclipse variables view (or when issuing "print str" at the GDB prompt), the GDB python pretty-printer should be activated.

Note to get the full support in Eclipse Indigo + CDT-8, you need to activate the setting “enable pretty printers in variable/expression tree”, which can be accessed as Window/Preferences > C++ / debug / GDB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值