我按照更新GDB以便与Eigen3一起使用的说明进行了操作。然而,CLion IDE无法在调试面板中加载eigen矩阵的内容。
本应该是快速验证和调试结果的过程,现在变成了耗时的手动打印过程(或更糟糕的情况:在cygwin的终端中以交互模式运行gdb)。
肯定有一种方法可以使eigen能够与CLion的调试器一起使用吧?
如果您正在寻找使用GDB和CLion解决问题的简单方法,@Chris以及其他人,我在Ubuntu上进行了测试,但它应该适用于任何系统。
解决方案的一部分已经在Eigen存储库中,只需要稍加修改即可。
我更改的是Python模块导入逻辑:
printers
目录下,可以选择任何目录,比如/any_full_path/printers
__init__.py
~/.gdbinit
python
import sys
sys.path.insert(0, '/any_full_path/printers')
from printers import register_eigen_printers
register_eigen_printers(None)
end
如有需要,可以随时要求更多截图或其他说明,因为这应该非常简单易行。
我已经成功在Windows上使用这个项目https://github.com/fantaosha/LLDB-Eigen-Pretty-Printer,让lldb在CLion中工作。
您需要在主目录下创建.lldbinit文件,并添加类似的行:
command script import "C:\Users\user.lldb-eigen-data-formatter\LLDB_Eigen_Pretty_Printer.py"(当然,根据GitHub上的自述文件,需要克隆此文件夹和文件)
现在,Clion将导入此脚本,但是您会遇到一些错误,您需要按照此处所述删除正则表达式中的问号: https://github.com/fantaosha/LLDB-Eigen-Pretty-Printer/issues/4#issuecomment-747329527 现在,CLion将能够显示矩阵、向量等值(但在Windows上至少没有换行符)。
对于gdb而言,应该是uta所回答的,但我没有尝试过,因为我正在使用lldb。如果你没有使用与此相关的特定内容,也许可以尝试将调试器更改为lldb。 希望这在某种程度上有所帮助!