В общем, я вижу процесс pid, который работает в фоновом режиме и запускает dbx в этом процессе, используя команду dbx -a <pid>
аналогично, как я могу это сделать с помощью gdb?
Ответ 1
Есть два способа.
Из командной строки включите pid в качестве аргумента после имени исполняемого файла:
gdb /path/to/prog PID
Внутри gdb вы можете использовать команду attach:
gdb /path/to/prog
gdb> attach PID
В то время как указание в командной строке более краткие, существует небольшой риск того, что если у вас есть основной файл с именем, который совпадает с именем pid (т.е. для pid 2345, основной файл должен быть "2345" ), тогда gdb откроет основной файл. По общему признанию, вероятность этого события незначительна.
Ответ 2
В дополнение к предыдущему вы можете напрямую использовать
gdb -p <pid>
Ответ 3
На странице man gdb:
Вместо этого вы можете указать идентификатор процесса в качестве второго аргумента, если вы хотите отладить выполняемый процесс: