У меня возникла проблема в моем проекте Lazarus: каждый раз, когда я хочу использовать функцию, она выдает указанную выше ошибку (External: SIGSEGV
). Я не знаю, что это значит, но некоторые отладки показала мне, что это код, вызывает ошибку:Ошибка Lazarus "External: SIGSEGV" при переменном приращении?
class function TUtils.AsStringArray(const Strs:TStrings): TStringArray;
var
s:string;
i:integer;
begin
SetLength(Result, Strs.Count);
i := 1;
for s in Strs do
begin
Result[i] := s;
i := i + 1;
end;
end;
И определение
TStringArray = array of string;
TUtils = class
public
[...]
class function AsStringArray(const Strs:TStrings): TStringArray; static;
end;
Исключение происходит после i := i + 1;
. Я был бы очень благодарен, если бы вы могли мне помочь!
Он установил предыдущую ошибку, но он либо показал еще один или создал новый. Ассемблер показывает эту команду: '00407189 8b12 mov (% edx),% edx' –