Контрольные точки отладчика не работают

Я пытаюсь настроить Insight Debug на 64-битной системе виртуальных машин rhel6: uname -a Linux lb-cam-bca-devel 2.6.32-358.23.2.el6.x86_64 #1 SMP Sat 14 сентября 05: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) Установите точку останова, щелкнув мышью на виде сборки и выбрав Run из GUI. Исполняемый файл доходит до конца. Выходные данные в представлении консоли: "Программа завершилась нормально".

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

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

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

Файл, который я отлаживаю, представляет собой простой asm-скрипт, взятый из книги (Assembly Language Step By Step).

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

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

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

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

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

1 ответ

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

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

(формат -g по умолчанию установлено "stabs", но gdb лучше понимает dwarf, вы можете изменить его с помощью -F переключатель)

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

ld -o executable_name anyfile.o 

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

Другие вопросы по тегам