The new emerging NLE for GNU/Linux

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

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

For more informations see here..

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

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

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