我有一个二进制文件,通常按如下方式运行:
$ 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