Как войти в процесс, работающий на 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>