Проект практически закончен
Возник такой вопрос: при вызове InputBox'a прога вываливается.
Происходит это на строке:
- Код: Выделить всё
min:=StrToFloatDef(InputBox('','Minimal limit',''),0);
Ошибка получается такого вида:
Project raised exception class 'External: Sigsegv'
По нажатию OK следующее окно:
Выполнение остановлено
Адрес: 0040CC7C
Процедура: SYSTEM_SYSGETMEM_VAR$LONGINT$$POINTER
Файлл:
Что интересно, вызываемый до этого аналогичны код ошибки не выдаёт.
И может ли быть так, что размер, выделяемый массиву, в виндусе и линуксе разный --- там где винда нормально работает, в линуксе получаю что-то типа rangecheck error (правда, об этом он не пишет, но по совокупности свойств очень похоже).
Помучал лазарус ещё. Заменил gdb на самый свежий, пересобрал, перезаписал пути. Теперь первая ошибка не исчезла, но по нажатию ОК ссылается на этот код из LCLClasses:
- Код: Выделить всё
class function TLCLComponent.NewInstance: TObject;
begin
Result := inherited NewInstance;
TLCLComponent(Result).FWidgetSetClass := FindWSComponentClass(Self);
if TLCLComponent(Result).FWidgetSetClass = nil then
begin
{$IFDEF VerboseLCL}
DebugLn(['TLCLComponent.NewInstance WARNING: missing FWidgetSetClass ',ClassName]);
{$ENDIF}
TLCLComponent(Result).FWidgetSetClass := TWSLCLComponent;
end;
end;
И ещё обнаружилось то, что вылет происходит при попытке вызова люого из Dialogs --- помимо упомянутого, вылетает и при вызове ShowMessage, SaveDialog и SavePictureDialog.
Обновления на Lazarus fixes + fpc 2.2.2 не помогло.