запустить GDB с помощью PID - PullRequest
       24

запустить GDB с помощью PID

38 голосов
/ 28 января 2010

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

Точно так же, как я могу сделать это, используя GDB?

Ответы [ 3 ]

52 голосов
/ 02 октября 2012

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

gdb -p <pid>
36 голосов
/ 28 января 2010

Есть два пути.

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

gdb /path/to/prog PID

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

gdb /path/to/prog
gdb> attach PID

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

3 голосов
/ 28 января 2010

Со страницы руководства gdb:

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

gdb program 1234
...