我在 Ubuntu 22.04 上使用 gdb 来调试依赖于 C++ 源文件的 R 代码。在我使用 Ubuntu 18.04 之前一切正常。几个月前,我将我的操作系统更新到 Ubuntu 22.04,从那时起,gdb 不再允许我调试 R 代码。
特别是当我在终端上运行命令时
R -d gdb
我得到的只是一个分段错误
gdb 本身似乎在 R 中运行良好
我不知道为什么我会观察到这种行为。我已经尝试清除 gdb 并重新安装它,但我得到了相同的结果。
有人知道发生了什么事吗?
我运行命令
gdb -ex 'set env LD_LIBRARY_PATH /usr/lib/R/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/default-java/lib/server' \
-ex run -ex where \
gdb /usr/lib/R/bin/exec/R
结果我得到这个:
感谢您的帮助!
看起来运行
R -d gdb
执行以下操作:
LD_LIBRARY_PATH=/usr/lib/R/lib:\
/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/default-java/lib/server \
gdb /usr/lib/R/bin/exec/R
GDB 不喜欢那个
LD_LIBRARY_PATH
.
所以第 0 步是在 shell 中运行上面的命令并确认它导致 GDB 崩溃。
第一步是运行
gdb -ex 'set env LD_LIBRARY_PATH /usr/lib/R/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/default-java/lib/server' \
-ex "set height 0" -ex run -ex where \
-ex "info shared" --args \
gdb /usr/lib/R/bin/exec/R
并使用输出编辑问题。