在VSCode中调试Eigen库

7
在调试期间,我想要访问eigen矩阵和向量的值。似乎一旦我有了.natvis文件,就可以创建一个c++对象的自定义视图。这里有一个Eigen的.natvis文件链接,但我不知道如何将其与VSCode集成。我还尝试了一个gdb扩展程序,但没有成功。

Current debugger view

我该怎么做?或者我还有什么其他解决方案?


@SumitDey 我想我之前做错了什么!现在它可以工作了。 - ignacio
@SumitDey,您介意写一篇教程吗?这样我就可以将您的回答标记为正确答案了。 - ignacio
1个回答

2

GDB扩展

它支持固定大小和动态大小矩阵,适用于普通使用情况。 结果:期望在VS Code中查看Eigen矩阵,如此处示例


设置(Linux)

  1. 复制/创建所需文件:
wget -P ~/gdbExtensions/ "https://bitbucket.org/eigen/eigen/raw/default/debug/gdb/printers.py"
touch ~/gdbExtensions/__init__.py
  1. 将扩展添加到 .gdbinit 中(将 <USER> 替换为用户名;基本上提供到 ~/gdbExtensions 的绝对路径):
echo -en "\
python \n\
import sys \n\
sys.path.insert(0, '/home/<USER>/gdbExtensions') \n\
from printers import register_eigen_printers \n\
register_eigen_printers (None) \n\
end\n" >> ~/.gdbinit

上述信息可在文件文档中获取。

3
以上链接已失效。可以在此处找到gdb调试printers.py文件:https://gitlab.com/libeigen/eigen/-/tree/master/debug/gdb。另请参考以下问题:https://dev59.com/wV8f5IYBdhLWcg3wD_Av。 - Ole Thomsen Buus
.gdbinit文件何时执行?看起来.gdbinit文件似乎不起作用。 - Mr.Spock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接