
그래서 두 노드에서 실행되는 프로그램을 디버깅하려고 했습니다. 나는 yod를 작업 실행기로 사용합니다.
yod -hosts node01,node02 ./dist_task -nl 2
프로그램이 멈췄습니다. 그래서 gdb를 이렇게 사용하고 싶었어요
yod -hosts node01,node02 gdb ./dist_task
node01에서 gdb 세션을 사용하고 있지만 node02에서는 사용할 수 없습니다. 원격 노드(htop의 node02)에서 실행 중인 프로세스(gdb ./dist_task)를 볼 수 있지만 한 단계씩 실행할 수는 없습니다. 나는 일반적으로 프로세스에 연결하는 것처럼 연결(gdb 프로세스에 연결하려고 시도 중)을 시도했지만 제 경우에는 이미 gdb이므로 gdb에 대한 정보를 얻지만 프로세스에 대한 정보는 얻지 못합니다.
ps:xterm을 통해 시도해 보았지만 거기에서도 운이 없었습니다(두 개의 xterm을 팝업할 수 없습니다).
답변1
당신은 오용하고 있습니다attach
문서에서:
attach process-id
This command attaches to a running process—one that was started outside gdb
gdb 프롬프트의 명령을 yod -hosts node01,node02 ./dist_task -nl 2
통해 연결 하거나 다음을 사용하여 시작한 다음 시도해 볼 수 있습니다. attach
gdb -a <pid>