Как войти в процесс, запущенный на gdb?

Как войти в процесс, запущенный на gdb?

Итак, я пытался отладить программу, которая работает на двух узлах. Я использую yod в качестве загрузчика задач.

 yod -hosts node01,node02 ./dist_task -nl 2

Программа зависла. Поэтому я хотел использовать gdb вот так

 yod -hosts node01,node02 gdb ./dist_task

Я в сеансе gdb в node01, но для node02 я не могу. Что происходит, я вижу, что процесс выполняется (gdb ./dist_task) на удаленном узле (node02 от htop), но я не могу войти в него. Я попробовал выполнить присоединение (я просто пытаюсь присоединить к процессу gdb), как обычно мы делаем с процессом, но в моем случае, поскольку это уже gdb, я получаю информацию о gdb, но не о процессе.

ps: Я пробовал сделать это через xterm, но и там не получилось (я не могу вставить два xterm)

решение1

Вы злоупотребляетеattach

Из документов:

attach process-id
    This command attaches to a running process—one that was started outside gdb

Вы можете попробовать запустить их, а yod -hosts node01,node02 ./dist_task -nl 2затем подключиться к ним с помощью attachкоманды из командной строки gdb или с помощьюgdb -a <pid>

Связанный контент