【发布时间】:2020-02-04 15:24:44
【问题描述】:
我已按照说明更新我的 GDB 以用于 Eigen3。但是,CLion IDE 无法在调试面板中加载特征矩阵的内容。
结果的快速验证和调试过程变成了耗时的手动打印过程(或更糟糕的是:在 cygwin 的终端中以交互模式运行 gdb)。
一定有办法让 eigen 和 clion 的调试器一起使用?
【问题讨论】:
-
你能做到吗?我尝试了几件事,但无法成功。
我已按照说明更新我的 GDB 以用于 Eigen3。但是,CLion IDE 无法在调试面板中加载特征矩阵的内容。
结果的快速验证和调试过程变成了耗时的手动打印过程(或更糟糕的是:在 cygwin 的终端中以交互模式运行 gdb)。
一定有办法让 eigen 和 clion 的调试器一起使用?
【问题讨论】:
@Chris 和其他任何人都在寻找使用 GDB、CLion 的解决方案,这是一种非常简单的方法,我在 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 上使用这个项目使 lldb 在 CLion 中工作:https://github.com/fantaosha/LLDB-Eigen-Pretty-Printer
您需要在您的主目录中创建 .lldbinit 并添加类似的行:
command script import "C:\Users\user.lldb-eigen-data-formatter\LLDB_Eigen_Pretty_Printer.py"(这个文件夹和文件需要按照github上的readme进行克隆)
现在 Clion 将导入这个脚本位你会得到一些错误,你需要删除正则表达式中的问号,如下所述: https://github.com/fantaosha/LLDB-Eigen-Pretty-Printer/issues/4#issuecomment-747329527 现在 CLion 将能够向您显示矩阵、向量等值(但没有换行符 - 至少在 windows 上)。
对于gdb,它应该是uta 回答的,但我没有尝试过,因为我使用的是lldb。如果您不使用与此相关的任何特定内容,也许您可以尝试将调试器更改为 lldb。 希望这在某种程度上有所帮助!
【讨论】: