Отладка в Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Сообщение Alexey_Melky » 27.05.2005 14:51:00

Я попытался запустить программу в режиме пошагового выполнения. Выполнение программы так и не началось. Также, если я пытаюсь установить break-point в тексте, то получаю слева от строки, которая при этом выделяется, знак вопроса в маленьком кружочке. При этом отладка так и не начинается.
Создается впечатление, что либо я делаю что-то неверно, либо отладка в среде Lazarus не реализована, либо реализована но не до конца.
Может быть кто нибудь подскажет, как правильно подружить Lasarus и отладчик, если конечно такое возможно на сегодняшний день.
Alexey_Melky
новенький
 
Сообщения: 21
Зарегистрирован: 14.05.2005 14:55:31

Сообщение Сергей Смирнов » 27.05.2005 15:08:01

Создается впечатление, что либо я делаю что-то неверно, либо отладка в среде Lazarus не реализована, либо реализована но не до конца.

Первое и третье верно, если речь идёт о виндовой версии относительно свежего Лазаря, а не о версии 0.9.6 (там верно второе). В Проект-> параметры компилятора -> Связывание надо установить галочку на Генерировать информацию для GDB. При этом должны заработать точки останова и пошаговое выполнение. Точки наблюдения, локальные переменные и вычисление выражений тоже как-то работают, но вполне могут и глючить. Тоже самое и для линуксовой версии, но там отладка работает уже давно (несколько лет).
Аватара пользователя
Сергей Смирнов
энтузиаст
 
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва

Сообщение Alexey_Melky » 03.06.2005 15:08:27

Сергей Смирнов писал(а): Первое и третье верно, если речь идёт о виндовой версии относительно свежего Лазаря, а не о версии 0.9.6 (там верно второе). В Проект-> параметры компилятора -> Связывание надо установить галочку на Генерировать информацию для GDB. При этом должны заработать точки останова и пошаговое выполнение. Точки наблюдения, локальные переменные и вычисление выражений тоже как-то работают, но вполне могут и глючить. Тоже самое и для линуксовой версии, но там отладка работает уже давно (несколько лет).

Речь идет именно об отладке под Win32, точнее XP. Опция гененрирования отладочной информации для GDB установлена. При простом запуске, без точек останова, если указан путь к отладчику, то GDB загружается и выполняется (по крайней мере он попадает в число процессов в диспетчере задач). При этом само приложение (отлаживаемая программа) не запускается. Мало того, если попытаться выйти из Lazarus, все окна, кроме основного закроются, а основное будет висеть до тех пор, пока я не выгружу "вручную" GDB.
Происходит это на текущей версии, по крайней мере на сборке от 30 мая.
Естественно, что до брек-пойнтов дело не доходит.
Вообще-то у меня возникает сомнение, что всякие опции, кроме путей, доходят до компилятора. Уж информация отладочного характера из программ точно не вырезается.
Alexey_Melky
новенький
 
Сообщения: 21
Зарегистрирован: 14.05.2005 14:55:31

Сообщение Иван Шихалев » 03.06.2005 15:11:17

Уж информация отладочного характера из программ точно не вырезается.

Известный баг линкера под Win32. Выход — strip.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение ushakov » 07.06.2005 21:23:43

>В Проект-> параметры компилятора -> Связывание надо установить галочку на Генерировать информацию для GDB.

Что-то не реботает (linux + 0.9.6)
ushakov
новенький
 
Сообщения: 51
Зарегистрирован: 18.05.2005 11:15:48
Откуда: Украина, Киев

Сообщение ushakov » 07.06.2005 21:28:59

Нашел: "Окружение\Параметры отладчика" необходимо выбрать тип отладчика и задать полный путь к нему (/usr/bin/gdb)
ushakov
новенький
 
Сообщения: 51
Зарегистрирован: 18.05.2005 11:15:48
Откуда: Украина, Киев

Сообщение Alexey_Melky » 20.06.2005 14:49:23

Тем не менее, возвращаясь к теме запуска и отладки программ из среды Lazarus. Все-же, насколько я понимаю, ошибка происходит при запуске GDB именно из среды. Скомпилированный загрузочный файл без труда выполняется, если его загрузить без помощи Lasarus в GDB. И точки останова работают и пошаговое выполнение. Так что упомянутые мной проблемы в предыдущих сообщениях, относятся именно к Lasarus или работоспособности в связке с GDB под Windows.
Alexey_Melky
новенький
 
Сообщения: 21
Зарегистрирован: 14.05.2005 14:55:31

Сообщение pavels » 12.01.2006 09:26:20

Иван Шихалев писал(а):
Уж информация отладочного характера из программ точно не вырезается.

Известный баг линкера под Win32. Выход — strip.

А где это надо использовать ?
Можно подробнее.
pavels
незнакомец
 
Сообщения: 7
Зарегистрирован: 06.01.2006 10:12:40

Сообщение Иван Шихалев » 12.01.2006 09:40:48

А где это надо использовать ?

Обработать strip'ом готовый исполняемый файл.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение pavels » 12.01.2006 10:07:50

Я наверное что-то напутал.
У меня не идет отладка в Lazarus. И не знаю как ее запустить в Lazarus.
Подскажите как настроить отладку в Lazarus

Версия 0.9.11 от 9.01.2006
pavels
незнакомец
 
Сообщения: 7
Зарегистрирован: 06.01.2006 10:12:40

Сообщение Saemon Zixel » 15.01.2006 18:49:01

У меня такое тоже было давно на версии 0.9.6-0.9.8 под вин98 (но могло уже что-то зменится).
Это нелечится либо глючит если найдёш другую версию gdb.
Я брал какую-то 5.х из Inkspace, с ней он подглючивал но немного работал.
Попробуй упростить всё на вкладке "Код" в "параметрах компиляции для проекта".
Saemon Zixel
новенький
 
Сообщения: 78
Зарегистрирован: 20.09.2005 18:19:54
Откуда: Sochi

Сообщение SergKam » 19.01.2006 20:11:06

Кстати, в последних версиях отладка вообще сломана. В линуксе окно настройки отладки вообще по ошибке вылетает. А если вручную настройки в файле исправить всеравно нельзя значения переменных посмотреть(какуюто лажу показывает). И когда это кончится :( ....
Нет значений переменных при отладке в всплывающих подсказках(как в делфях). Будет ли?
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение Saemon Zixel » 19.01.2006 22:42:05

В снапшотах может да, но их использовать некто не заставляет, есть вет стабильная версия.

А ввинде gdb всегда плохо работал, надо остарожно работать ;)
Saemon Zixel
новенький
 
Сообщения: 78
Зарегистрирован: 20.09.2005 18:19:54
Откуда: Sochi

Re: Отладка в Lazarus

Сообщение Sharfik » 25.02.2018 04:13:12

Не хочу новую тему создавать, вопрос по отладке.
Если точка остановки указывает на первую функцию, а лазарус при остановке устанавливает курсор на вторую функцию это как понимать?
У меня что то не то с текстом или отладчик запутался?
Код: Выделить всё
function TBuildingList.Add(Item: TBuildingItem): Integer;
begin
  Result:= inherited Add(TCollectionGroupItem(Item));
end;

function TBuildingList.CreateItem: TBuildingItem;
begin
  Result:=TBuildingItem.Create;
  Result.CollectionName:=FCollectionName;
  DoCreateItem(Result);
end;
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 759
Зарегистрирован: 20.07.2013 01:04:30

Re: Отладка в Lazarus

Сообщение zub » 25.02.2018 10:15:44

Первая процедура нигде не вызывается и выкинута из бинарника
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 30

Рейтинг@Mail.ru