xvfb-run을 사용하여 호출된 바이너리를 디버깅(gdb)하는 방법은 무엇입니까?

xvfb-run을 사용하여 호출된 바이너리를 디버깅(gdb)하는 방법은 무엇입니까?

일반적으로 다음과 같이 실행하는 바이너리가 있습니다.

$ 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

관련 정보