Модератор: Модераторы
Ой, отладчик попал…. Astra Linux, Lazarus 2.2.4 extern so
День добрый!
Не могу понять почему чудит Лазарус, при попытке добавить в приложение вызов с внешней библиотеки, при запуске отладки выдается сообщение что
Ой, отладчик попал в состояние ошибки
Команда GDB:
«-exec-run»
не возвратила никакого результата.
проявляется в самом простом проекте
код библиотеки
- Код: Выделить всё
library hello;
{$mode objfpc}{$H+}
uses
Classes
{ you can add units after this };function Hello: string; cdecl;
begin
result := 'Hello!';
end;exports
Hello;begin
end.
код приложения
- Код: Выделить всё
unit helloFrm;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs;type
TForm1 = class(TForm)
privatepublic
end;
var
Form1: TForm1;implementation
{$R *.lfm}
function Hello(): string; cdecl; external 'libhello.so';
end.
фактически есть только импорт функции, все остальное убрано. Если его закоментарить — запускается
Lazarus
- Код: Выделить всё
Lazarus 2.2.4 (rev Unversioned directory) FPC 3.2.2 x86_64-linux-gtk2
/usr/bin/fpc
-MObjFPC
-Scghi
-Cg
-O1
-g
-gl
-l
-vewnhibq
-Filib/x86_64-linux
-Fu/usr/share/lazarus/2.2.4/lcl/units/x86_64-linux/gtk2
-Fu/usr/share/lazarus/2.2.4/lcl/units/x86_64-linux
-Fu/usr/share/lazarus/2.2.4/components/freetype/lib/x86_64-linux
-Fu/usr/share/lazarus/2.2.4/components/lazutils/lib/x86_64-linux
-Fu/usr/share/lazarus/2.2.4/packager/units/x86_64-linux
-Fu.
-FUlib/x86_64-linux
-FE.
-ohello_prg
-dLCL
-dLCLgtk2
Linux
- Код: Выделить всё
Linux rev-orel 5.4.0-71-generic #astra33+ci2-Ubuntu SMP Mon Jun 21 22:55:15 UTC 2021 x86_64 GNU/Linux
В виндовс все прекрасно добавляется и запускается
- GreyCrazyWolf
- незнакомец
- Сообщения: 7
- Зарегистрирован: 02.03.2023 15:23:57
Re: Ой, отладчик попал…. Astra Linux, Lazarus 2.2.4 extern
BlackShark » 17.03.2023 10:35:39
Попробуй дебагер fpDebug, правда ранее он не поддерживал отладку библиотек из хостового приложения, сейчас не в курсе как с этим обстоят дела, но автор писал что планирует добавить. Как раз вышла версия Lazarus 2.2.6, там много изменений по fpDebug.
-
BlackShark - новенький
- Сообщения: 41
- Зарегистрирован: 20.05.2019 12:52:15
-
- Профиль
- Сайт
Вернуться в Lazarus
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и гости: 6
Одобрено: Fortect
Повысьте производительность вашего компьютера с помощью этой простой загрузки. г.
Вам следует прочитать эти идеи по исправлению, если самый важный отладчик ввел на вашем компьютере PIN-код состояния ошибки.
<дел><дел><дел><дел>
Когда я запускаю программу на Lazarus с F7 (ввод) или F8 (ввод), то компилируется, эта программа запускается, но через некоторое время это выглядит как ошибка:
“Ошибка отладчика
< p> Извините, отладчик зарегистрировал состояние ошибки.
Сохраните свою работу!”
Пока F9 работает нормально.
Что я могу сделать?
<дел><р>«Последнее изменение: 7 декабря 2012 г., 12:15:18, автор — Panoss»
Связанный
Многочисленные 32-разрядные версии Windows, Lazarus v1.8.4 и FPC 3.0.4.
<время><а> <дел><дел><дел><дел>
Возможных причин много:
Если это происходит при запуске приложения: попробуйте найти форум по работе с Bitdefender и брандмауэром comodo.
В разделе “Очень сложные случаи” включите принтер или измените просрочку на другой принтер. Слышал несколько случайных неподтвержденных ответов, некоторые драйверы принтеров вызывают небольшой сбой GDB (Lazarus использует GDB)
Одобрено: Fortect
Fortect — самый популярный и эффективный в мире инструмент для ремонта ПК. Миллионы людей доверяют ему обеспечение быстрой, бесперебойной и безошибочной работы своих систем. Благодаря простому пользовательскому интерфейсу и мощному механизму сканирования Fortect быстро находит и устраняет широкий спектр проблем Windows — от нестабильности системы и проблем с безопасностью до проблем с управлением памятью и производительностью.
Определенно:
Updatepre-Lazarus 0.9.30.2
Перейдите по ссылке на этот форум, вы найдете имейте это в виду на Sourceforge .
Многие ошибки были исправлены, и определенно выходит обновление GDB (win).
Позже проверил, что так, модернизировать конфиг, на который ссылается мысль выложить в GDB. (В Linux убедитесь, что у вас установлена GBB 7.2 или более крупная версия / на Mac серьезно 6.3.50)
См. http://wiki.lazarus.freepascal.org/Debugger_Setup
Для получения дополнительной помощи, пожалуйста получить важную информацию, описанную здесь:
http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#Create_a_new_Report.
(Вы можете пропустить перекомпиляцию с любым родственным нашим определениям)
< /дел>
<дел>
Связанный
<время>
АвторТема: Ошибка отладчика Извините, отладчик выдал ошибку (4110 операций чтения)
Если я запускаю медиа в Lazarus с F7 (ввод) или F8 (ввод), он компилируется, программа запускается, хотя каждая ошибка отображается мгновенно:
“Отладчик отключен
Извините, все отладчики достигли повторения ошибки
Сохраните свою работу с помощью! “
с обычным расширением F9.
Что я могу сделать?
<р>«Последнее изменение: 2 декабря 2011 г., 12:15:18, сделано Panoss»
Если вы проходите мимо своего дома в случаях, когда запускается приложение магазина: этот форум предназначен для битдефендера, связанного с брандмауэром comodo.
В очень редких случаях включите этот принтер или измените настройки по умолчанию, чтобы найти другой принтер. Я читал или слышал случайные / неподтвержденные сообщения о том, что некоторые драйверы принтера вызывают сбой GDB в какой-то степени (Lazarus использует GDB)
Следуйте инструкциям по загрузке на этом форуме, вы должны найти Sourceforge.
Исправлены многие глюки и добавлена обновленная GDB (Win).
Итак, следуя за обновлением, проверьте тип конфига, указывающий – обновленный GDB. (В Linux убедитесь, что у кого-то установлена версия GBB 7.2 или выше. На Apple PC доступна только версия 6.3.50)
См. http://wiki.lazarus.freepascal.org/Debugger_Setup
Некоторое время назад я установил Lazarus (версия 1.4.4) на мини-Mac (OSX 10.10 Yosemite), а также отладчик GDB. Когда я компилирую и запускаю идеальное простое приложение — например, форму списания — все, что вы знаете, в порядке. К сожалению, когда я закрываю работающее приложение, я получаю каждое сообщение
<цитата>
GDB генерирует встроенную ошибку: нажмите OK, чтобы продолжить. отлаживать. Это может быть НЕ уверен. Нажмите «Стоп», чтобы перейти к расширенному устранению неполадок. Сессия.
<цитата>
К сожалению, текущий установленный отладчик имеет статус ошибки. Получите ваш образ жизни работой сейчас. Резать Остановитесь и стремитесь к лучшему; снимите заглушку.
Я выбираю “стоп” в странном сообщении, и все в порядке. Стоит ли нам этого ожидать? Параметры «Показывать сообщение при завершении работы» и «Сбросить отладчик после многократного запуска» не выбраны в стильном отладчике. … Я видел эту информацию о той похожей ошибке, ей уже несколько лет и она тоже уже не актуальна.
г.
Topic: Debugger error Ooops, the debugger entered the error state (Read 4338 times)
When I’m running a program in Lazarus from F7(step into) or F8(step over), it compliles, the program runs, but at a moment appears an error:
«Debugger error
Ooops, the debugger entered the error state
Save your work now !»
While with F9 runs normally.
What can I do?
« Last Edit: December 07, 2011, 12:15:18 pm by panoss »
Logged
Windows 10 64bit, Lazarus Version 2.2.0 FPC 3.2.2.
There are many possible reasons:
If it happens right when you start your app: search this forum for bitdefender and comodo firewall.
In very rare cases either switch on your printer or change the default to an other printer. I have heard a few random/unconfirmed reports, that some printer drivers somehow crash GDB (Lazarus uses GDB)
In any case:
Upgrade to Lazarus 0.9.30.2
Follow the download link on this forum, you will find it on sourceforge.
It has many bugs fixed, and comes with am updated GDB too (win).
So after the update check the configuration that it points to the updated GDB. (On Linux ensure you have GBB 7.2 or higher / On Mac there is only 6.3.50)
See http://wiki.lazarus.freepascal.org/Debugger_Setup
For more help, please provide the info described here:
http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#Create_a_new_Report.
(You cam skip recompiling with the define)
Logged
I recently installed Lazarus (version 1.4.4) on a Mac Mini (OSX 10.10 Yosemite), including the GDB debugger. If I compile and run a simple application—like an empty form—everything goes well. When I quit the running application, however, I get a message saying
GDB has encountered an internal error: Press «OK» to continue
debugging. This may NOT be safe. Press «Stop» to end the debug
session.
Pressing «Stop» results in a message titled «Debugger Error» saying
Oops, the debugger entered the error state. Save your work now. Hit
Stop, and hope for the best; we’re pulling the plug.
I click «Stop» on the whimsical message, and everything seems OK. Is this expected? In my Debugger Options neither «Show message on stop» nor «Reset debugger after each run» is selected. … I did see this post about a somewhat similar error, but it’s several years old and no longer applies.
Ошибка отладчика Lazarus в AstraLinux
После успешной компиляции приложения в Lazarus под AstraLinux и попытке запуска появляется сообщение об ошибке отладчика: «Отладчик не смог запустить приложение». При этом окно подробностей ничего внятного не сообщает:
Причина
Вероятнее всего в таком случае виновата блокировка системных вызовов ptrace, которая активируется по-умолчанию, если не убрать соответствующую галочку при установке AstraLinux.
ptrace (от process trace) — системный вызов в Linux, который позволяет трассировать или отлаживать выбранный процесс. ptrace дает полный контроль над процессом: можно изменять ход выполнения программы, смотреть и изменять значения в памяти или состояния регистров. При этом никаких дополнительных прав не получаем — действия ограничены правами запущенного процесса.
Решение
Необходимо отключить блокировку ptrace. Сделать это можно под админом в графическом интерфейсе: Панель управления — Безопасность — Политика безопасности. Далее открываем раздел Настройки безопасности — Системные параметры. Нас интересует галочка «Блокировка трассировки ptrace для всех пользователей«. Её необходимо убрать:
После этого применяем изменения и перезагружаемся. После перезагрузки отладчик должен заработать как положено.
То же самое можно выполнить и в терминале (например, по SSH). Для проверки состояния выполняем команду:
$ systemctl is-enabled astra-ptrace-lock
Если ответ «enabled», значит блокировка включена. Выключаем её:
$ sudo astra-ptrace-lock disable
$ sudo reboot
Данная статья проверялась для AstraLinux SE 1.7.2