如何使用gdb打印Eigen中的变量

如何使用gdb打印Eigen中的变量

Eigen是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。但是用gdb来debug用了这个库的代码却不能够很好把变量打印出来。这也是为什么我喜欢用Python的原因之一把!—。—
首先推荐使用cgdb而不是gdb,本质上他们是一样的,不过cgdb调试代码的时候更加舒服!

gdb调试代码

如何使用gdb打印Eigen中的变量_第1张图片

cgdb调试代码

如何使用gdb打印Eigen中的变量_第2张图片

我是在Linux系统下使用的,所以你只需要

sudo apt-get install cgdb

对于Eigen,你要在你的目录下,以我自己为例,我在/home/tony
下创建了一个文件夹叫做eigen_configuration(你可以是任何名字),然后创建一个python文档,叫做printers.py,将链接 上的内容复制进来。然后在/home/tony目录下创建一个叫做.gdbinit的文档,将以下内容复制进来

      python
      import sys
      sys.path.insert(0, '/path/to/eigen/printer/directory')
      from printers import register_eigen_printers
      register_eigen_printers (None)
      end

那么以我为例

      python
      import sys
      sys.path.insert(0, '/home/tony/eigen_configuration')
      from printers import register_eigen_printers
      register_eigen_printers (None)
      end

需要注意的是你要在放置printers文档的文件夹中,再建一个文档叫做 _init.py, 里面是空的就好了!以便系统能够找到printers文档。

下面是使用前和使用后的区别!

未使用前

如何使用gdb打印Eigen中的变量_第3张图片
使用后
如何使用gdb打印Eigen中的变量_第4张图片

好极了

你可能感兴趣的:(C++)