2015-02-10 6 views
1

Я пытаюсь настроить отладчик insight на 64-битной VM-системе rhel6: uname -a Linux lb-cam-bca-devel 2.6.32-358.23.2.el6.x86_64 # 1 SMP сб 14 сентября 5:32:37 EDT 2013 x86_64 x86_64 x86_64 GNU/Linuxконтрольные точки отладки Insight не работают

Я скачал источник - инсайт-6.8-1a.tar.bz2, полученный из ftp://sourceware.org/pub/insight/releases, сконфигурированных, построен и установлен.

Я могу разобраться, но когда я пытаюсь установить контрольные точки, они не попадают.

Вот что я пробовал: 1) Установите точку останова, щелкнув мышью на вид сбоку и выберите «Выполнить из графического интерфейса». Исполняемый файл проходит до конца. Вывод на консольном представлении - «Программа завершена нормально».

2) Установите точку останова, щелкнув мышкой по исходному коду и выберите «Выполнить» из графического интерфейса. Все окна Insight исчезают (сбой?). «Ошибка сегментации» выводится на терминал.

3) Удалите точки останова по умолчанию из графического интерфейса пользователя и установите контрольную точку из командной строки gdb в окне консоли. Введите r для запуска. Все окна Insight исчезают (сбой?). «Ошибка сегментации» выводится на терминал.

Если я просто запускаю gdb с терминала, я могу установить точки останова и выполнить прекрасный файл источника.

Файл, который я отлаживаю, представляет собой простой сценарий asm, взятый из книги (шаг за шагом).

Команды, которые я использую для создания файла являются: NASM -f elf64 -g -F карлик eatsyscall.asm л.д. -o eatsyscall eatsyscall.o

Команда Я использую, чтобы открыть представление является: insight eatsyscall

Может кто-нибудь понять, что может быть здесь? Или кто-нибудь может предложить, как я могу отладить проблему? На данный момент я немного застрял.

Ближайшей вещь, которую я видел сообщил в сети к этому поведению здесь: osdir.com/ml/debugging.insight/2008-09/msg00001.html

Но нет никаких общих библиотек, участвующих в моем случае.

+0

Я получил более современную версию источника (проницательность-7.8), построил ее, и это работает нормально.Я до сих пор не знаю, что случилось с оригинальной сборкой, но когда я построил новую версию, он жаловался на то, что не смог найти общую библиотеку - мне пришлось установить LD_LIBRARY_PATH. Возможно, предыдущая версия находила некорректную библиотеку откуда-то? – user1802664

ответ

1

У меня была такая же проблема, чтобы решить использовать карлик, как формат отладочной информации т.е. собрать код (если используется NASM) в качестве

nasm -f elf -g -F dwarf anyfile.asm 

(формат -g установлен в положение «уколы» по умолчанию, но GDB понимает карлик лучше, вы можете изменить его с помощью -F переключателя)

Теперь связать объектный код, как (если используется компоновщик ГНУ)

ld -o executable_name anyfile.o 

с карликом в качестве формата отладки теперь вы можете установить точки останова.