В общем я вижу процесс pid
-х, который работает в фоновом режиме и начать DBX на этот процесс с помощью команды dbx -a <pid>
запустить GDB с помощью ФИД
аналогично тому, как я мог сделать это с помощью GDB?
В общем я вижу процесс pid
-х, который работает в фоновом режиме и начать DBX на этот процесс с помощью команды dbx -a <pid>
запустить GDB с помощью ФИД
аналогично тому, как я мог сделать это с помощью GDB?
Есть два способа.
из командной строки, включают в себя идентификатор процесса в качестве аргумента после имени исполняемого файла:
gdb /path/to/prog PID
С в БГД, вы можете использовать присоединять команду:
gdb /path/to/prog
gdb> attach PID
Хотя задающий на командной строки более кратким, есть небольшой риск, что если у вас есть файл ядра, который имеет имя, такое же, как pid (т. е. для pid 2345, основной файл должен быть назван «2345»), тогда gdb будет откройте основной файл. По общему признанию, вероятность этого события незначительна.
От GdB человека страницы:
Вы можете, вместо этого, указать идентификатор процесса в качестве второго аргумента, если вы хотите отладить выполняющийся процесс:
gdb program 1234
В дополнение к предыдущим вы можете напрямую использовать
gdb -p <pid>
Это правильный ответ. Прикрепление GDB к PID никоим образом не должно включать указание пути к исполняемому файлу. Правильное решение должно включать только PID и ничего больше. – AnT