如何调试(gdb)使用 xvfb-run 调用的二进制文件?

如何调试(gdb)使用 xvfb-run 调用的二进制文件?

我有一个二进制文件,通常按如下方式运行:

$ xvfb-run ./bin --param1 foo

但是,现在我需要使用 GDB 对其进行调试,但我无法执行以下操作:

$ gdb --args xvfb-run ./bin --param1 foo

因为"/usr/bin/xvfb-run": not in executable format: file format not recognized.

有没有办法做到这一点?例如,通过使用Xvfb

蒂亚!

答案1

xvfb-run是一个shell脚本!因此,当您想在 中运行所有 xvfb-run 时gdb,您需要

gdb --args sh $(which xvfb-run) ./bin --param1 foo

但这可能不是您想要的!在我看来,您对调试 X 服务器本身并不感兴趣Xvfb。更像是您对调试感兴趣./bin。你宁愿

xvfb-run gdbserver localhost:9999 ./bin --param1 foo

它会启动一个 gdbserver 并./bin加载您的程序,然后您可以使用 gdb 附加到它

$ gdb ./bin
(gdb) target remote localhost:9999
(gdb) run

相关内容