GDB и Makefile - PullRequest
       20

GDB и Makefile

0 голосов
/ 20 апреля 2011

всем привет я пытаюсь отладить программу, которая была установлена ​​makefile. у него есть двоичный файл OpenDPI_demo.o и шеллскрипт оболочки OpenDPI_demo. когда я GDB OpenDPI_demo.o, у меня есть проблема. Я не могу запустить это. ошибка:

Starting program: /home/lx/ntop/test/opendpi/src/examples/OpenDPI_demo/OpenDPI_demo.o 
/bin/bash: /home/lx/ntop/test/opendpi/src/examples/OpenDPI_demo/OpenDPI_demo.o:can't execute the binary file.

пожалуйста, скажите мне, почему. на самом деле я могу запустить программу ./OpenDPI_demo. спасибо.

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

В зависимости от расширения, файл является объектным файлом .Он используется компоновщиком (наряду с другими объектными файлами) для создания исполняемого файла.Это настоящий исполняемый файл, который вы хотите запустить / отладить.

0 голосов
/ 29 июня 2011

Это еще один пример трудностей, с которыми сталкиваются программы, использующие libtool.

файл OpenDPI_demo вместе с OpenDPI_demo.o на самом деле, как вы сказали, сценарий оболочки, который оборачивает выполнение реального скомпилированного файла,вероятно, в .libs/OpenDPI_demo.

libtool нужна эта обертка для настройки путей к библиотеке времени выполнения и так, чтобы вы могли прозрачно выполнять программу, как если бы она была фактически установлена ​​в вашей системе.

способ корректной отладки этого приложения - не

/home/lx/ntop/test/opendpi $ gdb src/examples/OpenDPI_demo/.libs/OpenDPI_demo

, а использование libtool --mode=execute в сценарии оболочки, как показано ниже (это пример):

/home/lx/ntop/test/opendpi $ ./libtool --mode=execute gdb --args \
  src/examples/OpenDPI_demo/OpenDPI_demo -f capture.pcap
0 голосов
/ 20 апреля 2011

Предлагаем использовать

gdb OpenDPI_demo

вместо

Если в вашем make-файле он зависит от объекта, сделайте так, чтобы он зависел от OpenDPI_demo, например,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...