¿Cómo usar bonitas impresoras de depuración para ver objetos Eigen en QtCreator?

Estoy tratando de ver el contenido de unEigen vector en elLocales y Expresiones ventana de laQtCreator:

Veo que es un vector con 10 componentes:

pero cuando lo abro me sale:

Traté de usareste script para hacer el truco. Lo guardé junto con un vacío__init__.py archivo en la carpeta~ / Scripts / Eigen y creó el.gdbinit expediente:

python
import sys
sys.path.insert(0, '/home/martin/Scripts/Eigen')
from printers import register_eigen_printers
register_eigen_printers (None)
end

ReiniciéQtCreator y nada cambió. He comprobado el"leer .gdbinit al inicio" Opción en la configuración de QtCreator y todavía nada.

Lo que me preocupa es que sé que en el pasado la visualización de objetos Eigen funcionósin que me entrometa con algunos guiones.

Por favor, ¿qué estoy haciendo mal?

Estoy usando:

gcc versión 4.8.1
Ubuntu 13.10
gdb 7.6.1-ubuntu
Qt Creator 3.0.0
Basado en Qt 5.2.0

y estoy compilando usando estas banderas:

g++ -c -pipe -gdwarf-4 -fvar-tracking-assignments -g 
    -Wall -W -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG

EDITAR:

Como sugirió @ggael, traté de ejecutar elgdb directamente:

(gdb) run
Starting program: /home/martin/Projects/TestGrounds/test 
Traceback (most recent call last):
  File "/usr/lib/debug/usr/lib/i386-linux-gnu/libstdc++.so.6.0.18-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named 'libstdcxx'
Traceback (most recent call last):
  File "/usr/lib/debug/usr/lib/i386-linux-gnu/libstdc++.so.6.0.18-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named 'libstdcxx'

Y entonces:

(gdb) print vec
Python Exception <class 'TypeError'> 'map' object is not subscriptable: 
Python Exception <class 'TypeError'> 'map' object is not subscriptable: 
$1 = {<Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >> = {<Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >> = {<Eigen::DenseBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >> = {<Eigen::internal::special_scalar_op_base<Eigen::Matrix<double, -1, 1, 0, -1, 1>, double, double, false>> = {<Eigen::DenseCoeffsBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 3>> = {<Eigen::DenseCoeffsBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 1>> = {<Eigen::DenseCoeffsBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0>> = {<Eigen::EigenBase<Eigen::Matrix<double, -1, 1, 0, -1, 1> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, 
    m_storage = {m_data = 0x804e020, m_rows = 10}}, <No data fields>}

Por favor, ¿podría explicar qué significa esto? Que eslibstdcxx?

Respuestas a la pregunta(3)

Su respuesta a la pregunta