Ошибка в Lazarus при использовании gtk2

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

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

Ошибка в Lazarus при использовании gtk2

Сообщение xchgeaxeax » 23.02.2025 12:42:46

У меня появились странная ошибка. После старта отладки даже самого базового проекта и его закрытия в Lazarus все окна виснут. При запуске из консоли получаю ошибку
Application.ProcessMessages crashed with Access violation
При этом все повторяется на Lazarus 3.4-0, 3.6-0 и 3.8-0, которые взял с SourceForge и собирал из исходников. Проблемы при использовании дефолтного gtk2 в Lazarus.
Код: Выделить всё
xchgeaxeax@home-kde ~/.lazarus/Lazarus-3.8-0 $ uname -r
6.6.57-calculate
xchgeaxeax@home-kde ~/.lazarus/Lazarus-3.8-0 $ eix x11-libs/gtk+
[I] x11-libs/gtk+
     Доступные версии:     
     (2)    2.24.33-r3^t
     (3)    3.24.35^t 3.24.41^t 3.24.41-r1^t 3.24.42-r1^t ~3.24.48^t
       {+X aqua broadway cloudproviders colord cups examples gtk-doc +introspection sysprof test vim-syntax wayland xinerama ABI_MIPS="n32 n64 o32" ABI_S390="32 64" ABI_X86="32 64 x32"}
     Установленные версии:  2.24.33-r3(2)^t(00:59:05 14.05.2023)(cups introspection xinerama -aqua -examples -test -vim-syntax ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="32 64 -x32") 3.24.42-r1(3)^t(10:14:44 07.08.2024)(X cups introspection wayland xinerama -aqua -broadway -cloudproviders -colord -examples -gtk-doc -sysprof -test -vim-syntax ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="32 64 -x32")
     Домашняя страница:     https://www.gtk.org/
     Описание:              Gimp ToolKit +
xchgeaxeax@home-kde ~/.lazarus/Lazarus-3.8-0 $ gdb -v
GNU gdb (Gentoo 15.2 vanilla) 15.2
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
xchgeaxeax@home-kde ~/.lazarus/Lazarus-3.8-0 $ fpc -v
Free Pascal Compiler version 3.2.2 [2022/04/01] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Fatal: No source file name in command line
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode
xchgeaxeax@home-kde ~/.lazarus/Lazarus-3.8-0 $ ./startlazarus
Gtk-Message: 11:50:06.240: Failed to load module "appmenu-gtk-module"
Info: (startlazarus) [TLazarusManager.Run] starting /home/xchgeaxeax/.lazarus/Lazarus-3.8-0/lazarus ...
Info: (startlazarus) [TLazarusManager.Run] exe=/home/xchgeaxeax/.lazarus/Lazarus-3.8-0/lazarus Params=[--started-by-startlazarus
--no-splash-screen
--force-new-instance
]
Gtk-Message: 11:50:06.469: Failed to load module "appmenu-gtk-module"
Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] PrimaryConfigPath="/home/xchgeaxeax/.lazarus"
Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] SecondaryConfigPath="/etc/lazarus"
Hint: (lazarus) [TMainIDE.DoOpenProjectFile] "/home/xchgeaxeax/PRJ/lazarus/problem/project1.lpi"
Hint: (lazarus) [TBuildManager.SetBuildTarget] Old=x86_64-linux-gtk2 New=x86_64-linux-gtk2 Changed: OS/CPU=True LCL=False
LoadLFM Creating designer for hidden component of /home/xchgeaxeax/PRJ/lazarus/problem/unit1.pas
InitOpenedProjectFile select form in designer: Form1:TForm1 TDesigner
Hint: (lazarus) [TMainIDE.DoRunProjectWithDebug] INIT
Note: (lazarus) [TMainIDE.DoBuildProject] MainBuildBoss.DoCheckIfProjectNeedsCompilation nothing to be done
Hint: (lazarus) [TMainIDE.DoRunProjectWithDebug] Debugger=TFpDebugDebugger
Hint: (lazarus) [TMainIDE.DoRunProjectWithDebug] END
----------------
Application.ProcessMessages crashed with Access violation
xchgeaxeax
постоялец
 
Сообщения: 173
Зарегистрирован: 11.05.2023 03:51:40

Re: Ошибка в Lazarus при использовании gtk2

Сообщение RRYTY » 23.02.2025 15:50:36

xchgeaxeax писал(а):У меня появились странная ошибка.


Так-таки сама пришла и появилась. Расскажите хоть, что сделали, чтобы такую ошибку получить.

Хотя, это не сильно важно. Из-за повсеместного прекращения поддержки gtk2 при сборках свежих Лазарусов, а также после обновления систем (glibc, в частности), множественные ошибки (при отладке, при свертывании кода в редакторе, при установке модифицированных компонентов и т.п.) перестали быть редкостью. На мертвых гниющих системах типа Astra пользуюсь, соответственно, и подгнившим Лазарусом+gtk2, в остальных случаях перешел на qt6.
RRYTY
постоялец
 
Сообщения: 242
Зарегистрирован: 25.12.2021 10:00:32

Re: Ошибка в Lazarus при использовании gtk2

Сообщение xchgeaxeax » 23.02.2025 17:11:46

Да вот судя по всему после последнего обновления системы появилась.

Просто все мои проекты стали давать такую ошибку. Начал разбираться и вот нашел. Lazarus падает в Application.ProcessMessages при работе на gtk2. Пересобираешь на Qt5 или Qt6 и все в порядке. Сам, пока, не пойму в чем дело.

Собственно. Открываем новый проект. Нажимаем F9. Наблюдаем как IDE переключается в режим отладки и переставляет окошки. Потом появляется программа (окно). Жмем крестик. Среда опять пересобирает сет окон на обычный и все. Дальше все висит. Но при этом сами окна перерисовываются, но элементы в них не отвечают.

Вывод в консоль на Linux от отлаживаемой программы перенаправляется в окно консоли среды. А вот я вам привел вывод уже из обычной консоли. Там как раз сам Lazarus напечатал, что у него внутри упала Application.ProcessMessages.

ADD: Я сразу привел версии ядра Linux (и название), версии установленной gtk, gdb и fpc.
ADD2: Сам грешил на доп пакеты. Все поудалял. И все равно. Чистый Lazarus только только из сорцов без единого доп пакета все так же дает ошибку.
xchgeaxeax
постоялец
 
Сообщения: 173
Зарегистрирован: 11.05.2023 03:51:40

Re: Ошибка в Lazarus при использовании gtk2

Сообщение RRYTY » 23.02.2025 17:58:18

xchgeaxeax писал(а):Я сразу привел версии ядра Linux (и название), версии установленной gtk, gdb и fpc.


Начиная с версии лазаруса 3.4 тоже появилась некорректная работа с gdb. Попробуйте рекомендуемый (а, хочется думать, и поддерживаемый) FpDebug internal Dwarf-debugger. Ну, и конечно же, завязывайте с gtk2, ее скоро совсем не будет.

Добавлено спустя 29 минут 39 секунд:
xchgeaxeax писал(а):Сам грешил на доп пакеты. Все поудалял. И все равно. Чистый Lazarus только только из сорцов без единого доп пакета все так же дает ошибку.


Речь не про дополнительные пакеты, а про зависимости (прямые и неявные).
К примеру, у меня с год была проблема с сохранением свернутого кода, исчезла с очередным обновлением системных компонентов.
RRYTY
постоялец
 
Сообщения: 242
Зарегистрирован: 25.12.2021 10:00:32

Re: Ошибка в Lazarus при использовании gtk2

Сообщение xchgeaxeax » 23.02.2025 18:44:03

RRYTY писал(а):Начиная с версии лазаруса 3.4 тоже появилась некорректная работа с gdb. Попробуйте рекомендуемый (а, хочется думать, и поддерживаемый) FpDebug internal Dwarf-debugger. Ну, и конечно же, завязывайте с gtk2, ее скоро совсем не будет.

Тут дело не в gdb точно. Он завершается штатно. После чего Lazarus начинает переставлять окна и переключаться в режим рабочего стола для разработки, а не отладки. Это происходит. А вот уже после перестановки окон все виснет.

Добавлено спустя 2 минуты 36 секунд:
Проблема в том, что если обновился gtk, то в дереве осталась только 1 его версия. Я не могу откатиться. А вот если это падает из-за тоже же libc (она, кажется, как раз и обновилась последний раз), тогда надо будет танцевать с бубном, чтобы вкарячить старую версию этой либы в систему. Calculate не любит (как и любой Linux, наверное) обновлять её т.к. почти все от нее зависит.
xchgeaxeax
постоялец
 
Сообщения: 173
Зарегистрирован: 11.05.2023 03:51:40

Re: Ошибка в Lazarus при использовании gtk2

Сообщение RRYTY » 23.02.2025 18:51:16

xchgeaxeax писал(а):Проблема в том, что если обновился gtk, то в дереве осталась только 1 его версия


У меня две, так как есть прямые зависимости от второй ветки (кстати, Lazarus тоже с флагом gtk2 ее поставит). Надеюсь, вы при помощи portage пакеты собираете?

Добавлено спустя 3 минуты 28 секунд:
xchgeaxeax писал(а):Я не могу откатиться.


Вот этого допускать категорически нельзя на rolling-release дистрибутивах. Благо, в Calculate запросто сделать снимок дерева portage, в архив. 50 мегабайт, зато душа спокойна.

Добавлено спустя 3 минуты 56 секунд:
xchgeaxeax писал(а):надо будет танцевать с бубном, чтобы вкарячить старую версию этой либы в систему


Правда ваша, как есть! Вспоминается Караганов с его статьей "За что я ненавижу Линукс". Поседневный линуксовый дзен. :)
Последний раз редактировалось RRYTY 23.02.2025 21:28:03, всего редактировалось 1 раз.
RRYTY
постоялец
 
Сообщения: 242
Зарегистрирован: 25.12.2021 10:00:32

Re: Ошибка в Lazarus при использовании gtk2

Сообщение Seenkao » 23.02.2025 19:42:02

No source file name in command line

???
Seenkao
энтузиаст
 
Сообщения: 554
Зарегистрирован: 01.04.2020 03:37:12

Re: Ошибка в Lazarus при использовании gtk2

Сообщение xchgeaxeax » 23.02.2025 20:48:05

Seenkao писал(а):
No source file name in command line

???

Это fpc брыкается на флаг -v для отображения версии. Эту "ошибку" можно игнорировать.
Вот сам не понимаю почему он так работает.

Снимок экрана_20250223_205130.png

Оно даже на Windows так.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
xchgeaxeax
постоялец
 
Сообщения: 173
Зарегистрирован: 11.05.2023 03:51:40

Re: Ошибка в Lazarus при использовании gtk2

Сообщение RRYTY » 23.02.2025 21:11:31

xchgeaxeax писал(а):Это fpc брыкается на флаг -v для отображения версии.


Чтобы что-то отобразить есть ключ -i[x], для версии -iv, -iW. А -v - это флаг информативности, тоже в разных комбинациях с другими буквами используется.
RRYTY
постоялец
 
Сообщения: 242
Зарегистрирован: 25.12.2021 10:00:32

Re: Ошибка в Lazarus при использовании gtk2

Сообщение xchgeaxeax » 23.02.2025 21:35:24

RRYTY писал(а):
xchgeaxeax писал(а):Это fpc брыкается на флаг -v для отображения версии.


Чтобы что-то отобразить есть ключ -i[x], для версии -iv, -iW. А -v - это флаг информативности, тоже в разных комбинациях с другими буквами используется.

Спасибо, что ткнули носом. Перечитал внимательнее справку у fpc. Обычно --version есть, но у него нету. И в самом конце только -h и -?.

Только правильный флаг fpc -iV. На fpc -iv он говорит что не понимает
xchgeaxeax
постоялец
 
Сообщения: 173
Зарегистрирован: 11.05.2023 03:51:40

Re: Ошибка в Lazarus при использовании gtk2

Сообщение RRYTY » 23.02.2025 21:38:57

xchgeaxeax писал(а):Только правильный флаг fpc -iV. На fpc -iv он говорит что не понимает


Да.

Так все же:
RRYTY писал(а):вы при помощи portage пакеты собираете?
RRYTY
постоялец
 
Сообщения: 242
Зарегистрирован: 25.12.2021 10:00:32

Re: Ошибка в Lazarus при использовании gtk2

Сообщение xchgeaxeax » 23.02.2025 21:56:02

RRYTY писал(а):вы при помощи portage пакеты собираете?
да.
xchgeaxeax
постоялец
 
Сообщения: 173
Зарегистрирован: 11.05.2023 03:51:40

Re: Ошибка в Lazarus при использовании gtk2

Сообщение Seenkao » 04.03.2025 16:03:54

xchgeaxeax писал(а):Да вот судя по всему после последнего обновления системы появилась.

Я вот тут подумал... а не пробовал ли ты обновить FPC/Lazarus? Может стоит пересобрать их и проверить?
Seenkao
энтузиаст
 
Сообщения: 554
Зарегистрирован: 01.04.2020 03:37:12

Re: Ошибка в Lazarus при использовании gtk2

Сообщение xchgeaxeax » 04.03.2025 17:38:53

Seenkao писал(а):Я вот тут подумал... а не пробовал ли ты обновить FPC/Lazarus? Может стоит пересобрать их и проверить?

С последнего сообщения уже три раза пересобирал основную и по разу две другие версии. Ничего не меняется. Дефолтная сборка просто виснет после отсановки отладки.

Но я сейчас просто использую gdb и собрал на Qt5. В этом режиме все работает. До субботнешней обновы использовал Qt6, но после нее и она стала падать где-то в коде работы с Qt во всех проектах.

До сборки Lazarus-4.0-RC1 и 4.0-RC2 я пока не добрался.
xchgeaxeax
постоялец
 
Сообщения: 173
Зарегистрирован: 11.05.2023 03:51:40

Re: Ошибка в Lazarus при использовании gtk2

Сообщение Seenkao » 04.03.2025 18:02:52

Каким дистрибутивом пользуешься? А, вижу... KDE... тут наверно баг-репорт туда надо направить, что иксы не работают нормально в вяленом. А именно GTK2 (или они выпилили полностью поддержку?).
Seenkao
энтузиаст
 
Сообщения: 554
Зарегистрирован: 01.04.2020 03:37:12

След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru