일반적으로 다음과 같이 실행하는 바이너리가 있습니다.
$ 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.
이를 수행할 수 있는 방법이 있습니까? 예를 들어wxya?
티아!
답변1
xvfb-run
쉘 스크립트입니다! 따라서 모든 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