Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/55: Рейтинг темы: голосов - 55, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 21
1

Ошибка: External "SIGSEGV" Error

27.11.2015, 19:22. Показов 10002. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Такая проблема:
Я сейчас обучаюсь в институте после колледжа, и там некоторые предметы у меня была возможность перезачесть, просто так или что-то сделав.
По одному из них мне сказали переделать мой диплом, который я писал на Delphi и на среде разработки RAD Studio XE 7, под Lazarus. Небольшая база данных для библиотеки ВУЗа с возможностью создавать отчёты.
Вроде бы всё шло неплохо, какие-то вещи изменял/переписывал, но особо проблем не было.
И вроде всё починил, скомпилировал, собрал, запускаю... Не запускаю.
Ошибка в заголовке сей темы.
Я искал по этой теме уже долго, но так ничего и не нашёл.
Можете посмотреть?
И да, сразу говорю, с программой я особо не заморачивался на этот раз, просто перенёс с Delphi в среде RAD Studio на Lazarus, не судите уж по данной вещице.
Вложения
Тип файла: 7z practic.7z (3.28 Мб, 3 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2015, 19:22
Ответы с готовыми решениями:

Lazarus error External: SIGSEGV
Не понимаю, в чем ошибка. Уже все перепробовал. Код: unit Unit3; {$mode objfpc}{$H+} ...

SaveDialog и ошибка External: SIGSEGV
Здравствуйте. Столкнулся с непонятным поведением в Lazarus, а именно рандомным появлением...

Ненавистная ошибка External:SIGSEGV
Программа банальна. Два элемента Memo, создается матрица, выводится в Memo1, потом идет обработка...

Ошибка External:sigsegv, что делать?
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms,...

8
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
28.11.2015, 00:36 2
Проект бесполезен чуть менее, чем полностью, для его старта потребуются файлы, лежащие в папке Users, их в архиве нет. Но вот если снять галку "Проект - Параметры проекта - Приложение - Доступ к интерфейсу пользователя (uiAccess)", и пересобрать проект полностью, удалив exe и все содержимое папки lib/..., то проект хотя бы будет пытаться запускаться, а не выдавать "A referral was returned from the server" (при запуске exe из WinExplorer-а)
0
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 21
28.11.2015, 00:51  [ТС] 3
Попробовал.
Увы, всё то же самое, всё ещё не запускает, всё ещё та же ошибка... на компьютере.
На ультрабуке учебном, на котором я и пишу всё, запустилось, но при попытке открыть форму через менюшку так же вызвал ошибку External SIGSEGV, но на этот раз пожаловался на control.inc, выделив в нём строчку?
Pascal
1
GetTextMethod := TMethod(@Self.GetTextBuf);
Я никогда с подобным не сталкивался раньше, работая на Delphi и вариациях C, да и Lazarus только недавно начал познавать благодаря этому заданию, так что я в тупике пока что.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
28.11.2015, 02:42 4
Если бы ты предоставил файлы, которые требуются для запуска - было бы о чем говорить. На данный момент говорить не о чем, ошибка возникает именно в момент неудачной попытки открытия файла, который есть у тебя, но его нет у нас, дальше этого дело не идет, программа тут же вырубается. Так что воспроизвести то, что видишь ты мы просто не в состоянии.

Добавлено через 26 минут
Так. Проблема понятна. Во-первых, у тебя главная форма (которая Form_general) не была выставлена, как fsMDIForm, соответственно, ActiveMDIChild не работает, при попытке обратиться к этому свойству получаем nil и пытаемся разыменовать nil, чтобы прочесть Caption. Вот и причина вылета.

А во-вторых, все обработчики menuItem-ов приведи вот к такому шаблону:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm_general.N2Click(Sender: TObject);
begin
  f := 0;
  if Assigned(ActiveMDIChild) then // сначала проверяешь, что к ActiveMDIChild можно обращаться
    if ActiveMDIChild.Caption <> 'Дисциплины' then // и только потом пытаешься обратиться...
    begin
      for i := 0 to form_general.MDIChildCount - 1 do
        if Form_general.MDIChildren[i].Caption = 'Дисциплины' then
        begin
          MDIChildren[i].Show;
          f := 1;
        end;
    end
    else
      f := 1;
 
  if f <> 1 then
  begin
    TForm_proizv_uchastok.Create(Application).Show; // мало того, что создаешь форму, так еще и показываешь сразу
  end;
end;
1
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 21
28.11.2015, 03:53  [ТС] 5
Так, я внёс изменения и теперь обнаружилась новая проблема.
Оно запускается (только на ультрабуке, ну да ладно) и форма Дисциплины открывается... Но только она.
Она самая первая в списке "Справочники", да и в принципе, получается, первая в выборе, и только она и работает.
Ни другие формы справочников/документов, ни отчёты не вызываются.
Я перепроверил код на предмет чего-то упущенного мною или ещё чего, но нет, даже сверка с оригинальным проектом ничего не дала.
У меня такое было лишь когда я в первый раз начинал проект на Делфи, но там проблема была решена и была она только в коде и свойствах, кои я перенёс в нынешний проект.
Прошу прощения за приносимые неудобства, просто у меня не много времени остаётся до дэдлайна.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
28.11.2015, 11:47 6
Открываются ВСЕ формы (только что было проверено), если ВСЕ обработчики OnClick элементов меню были
1) правильно переделаны в соответствии с тем шаблоном, который написан выше
2) правильно назначены в инспекторе объектов
0
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 21
28.11.2015, 15:06  [ТС] 7
Я привёл к абсолютно этому же виду все OnClick менюшек, проставил все возможные забытые пробелы, перепроверил на три раза - теперь помимо "Дисциплины" запускаются "Специальности" и "Циклы", которые идут по порядку после "Дисциплины" в меню. Всё остальное не запускается. В инспекторе объектов ничего проблемного не обнаружил. Я не знаю, что я ещё мог пропустить.
Я приложил обновлённый архив на всякий случай.
Прошу прощения за уже затянутую проблему.
Вложения
Тип файла: 7z practic.7z (3.28 Мб, 5 просмотров)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
28.11.2015, 16:41 8
Не знаю, что там у тебя происходит:


(на кодировку не обращай внимание, у меня нелокализованная ОС)
0
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 21
06.12.2015, 10:19  [ТС] 9
Странная вещь.
Есть программа, есть главная форма, у неё есть открываемые через кнопочки MainMenu дочерние формы.
Проблема в том, что они не открываются.
Точнее, открываются первые три в первом из списков и всё, остальные - никакой реакции.
Ровно так же не реагируют кнопки, ответственные за исполнение SQL запросов с последующим выводом результатов в Excel документы.
Причём на институтском компьютере они открываются. На моём ултьрабуке - только первые три, даже после переустановки Windows. На системнике программа вообще не запускается с ошибкой External SIGSEGV.
Что может быть не так?
Программа почти готова, но я её даже проверить не могу, а время поджимает.
Версия Lazarus'а самая последняя, которая сейчас на официальном сайте лежит.
0
06.12.2015, 10:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2015, 10:19
Помогаю со студенческими работами здесь

Возникла такая вот ошибка: External: SIGSEGV
Приветствую. Возникла такая вот ошибка; В яем ошибка не понимаю. Помогите пожалуйсто unit Unit1;...

Ошибка: raised exception class 'External: SIGSEGV'
Мой код проходит компиляцию, но при запуске .exe после того, как нажимаю на кнопку, мной созданную...

Ошибка: Проект вызвал класс исключения External:SIGSEGV
Привет! Работаю над приложением для работы с оценками учеников. Решил начать с раздела настроек....

Project project1 raised exception class 'External: SIGSEGV' In file 'forms.pp' at line 2029 - Что за ошибка?
Здравствуйте форумчане. Писал программу на лазарусе, сунул в юнит вот такой код: ...

Ошибка "External: sigsegv" при нажатии на кнопку
Вылетает ошибка при нажатии на кнопку- класс исключения &quot;External: sigsegv&quot;. помогите пожалуйста...

Ошибка "External: SIGSEGV" в классе TControl
У меня при работе программы появляется ошибка. Что она означает?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru