Из консоли в каталоге с вашим исполняемым файлом:
sudo gdb ./my_program
Если eclipse поддерживает удаленную отладку, вы можете сделать это, даже если он работает локально.
С консоли:
sudo gdbserver localhost:<port_number> ./my_program
А затем сообщите Eclipse адрес (localhost и номер порта, который вы выбрали).
О, да, вы сказали, что причина, по которой вы это делали, была в том, что вы использовали libpcap
, поэтому вы можете не захотеть использовать удаленную отладку по TCP, потому что вы можете в конечном итоге захватывать пакеты отладочного соединения в дополнение к вашей другой сети трафика.
В этом случае вы выполняете удаленную (но действительно локальную) отладку через последовательный порт. Я никогда не делал этого на локальной машине, но вы могли бы использовать два реальных последовательных порта (подключив их через нуль-модем) или попробовать использовать псевдотерминал:
sudo gdbserver /dev/ptmx ./my_program
Это создаст псевдо-терминал под /dev/pts/
, но вам придется выяснить его имя, и он также может создать его с ограниченными правами. Вы можете обойти это. Если вы не запускаете много окон терминала в качестве пользователя root, маловероятно, что у вас будет много записей в разделе /dev/pts
, принадлежащих пользователю root, поэтому обратите внимание на ту, которая появляется после выполнения вышеуказанной команды, а затем sudo chmod
или * 1020. * чтобы его можно было использовать для обычного пользователя, а затем попросить отладчик использовать его в качестве последовательного соединения с целью удаленной отладки.