Вопрос

В целом я вижу, что процесс pid который выполняется в фоновом режиме и запустите dbx в этом процессе с помощью команды dbx -a <pid>

аналогично, как я мог бы сделать это с помощью gdb?

Это было полезно?

Решение

Есть два способа.

Из командной строки включите pid в качестве аргумента после имени исполняемого файла:

gdb /path/to/prog PID

Из gdb вы можете использовать команду прикрепить:

gdb /path/to/prog
gdb> attach PID

Хотя указание в командной строке более краткое, существует небольшой риск того, что если у вас есть основной файл с именем, совпадающим с pid (т.е.для pid 2345 основной файл должен иметь имя "2345"), после чего gdb откроет основной файл.По общему признанию, вероятность того, что это произойдет, ничтожно мала.

Другие советы

В дополнение к предыдущему вы можете непосредственно использовать

gdb -p <pid>

Со справочной страницы gdb:

Вместо этого вы можете указать идентификатор процесса в качестве второго аргумента, если хотите отладить запущенный процесс:

gdb program 1234
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top