Lazarus 中的 SIGILL 异常
SIGILL Exception in Lazarus
在正常工作一段时间后,我的代码在使用时开始引发 SIGILL 异常。
我不明白文档。
SIGILL 异常在实际热量中意味着什么?
这是引发异常的代码,你能帮我指出原因吗?
function TfrmPascal.valorElemento(lin, col: integer): integer;
begin
if lin < 0 then valorElemento:= 0
else if col < 0 then valorElemento:= 0
else if (col=0) or (col = lin) then valorElemento:=1
else valorElemento:= valorElemento(lin-1, col-1) + valorElemento(lin-1, col);
end;
SIGILL是遇到非法指令时发出的信号。如果您问题中的代码导致 SIGILL ,则表明以下之一:
- 您的可执行文件已损坏。
- 您的编译器发出了有缺陷的代码。
- 您正在尝试执行数据而不是代码。
最后一个选项是最有可能的。如果您注销了数组的末尾、损坏了堆栈等,则可能会发生这种情况。
问题中的代码本身似乎是无害的。几乎可以肯定,您的代码中的缺陷存在于其他地方。
在正常工作一段时间后,我的代码在使用时开始引发 SIGILL 异常。 我不明白文档。 SIGILL 异常在实际热量中意味着什么?
这是引发异常的代码,你能帮我指出原因吗?
function TfrmPascal.valorElemento(lin, col: integer): integer;
begin
if lin < 0 then valorElemento:= 0
else if col < 0 then valorElemento:= 0
else if (col=0) or (col = lin) then valorElemento:=1
else valorElemento:= valorElemento(lin-1, col-1) + valorElemento(lin-1, col);
end;
SIGILL是遇到非法指令时发出的信号。如果您问题中的代码导致 SIGILL ,则表明以下之一:
- 您的可执行文件已损坏。
- 您的编译器发出了有缺陷的代码。
- 您正在尝试执行数据而不是代码。
最后一个选项是最有可能的。如果您注销了数组的末尾、损坏了堆栈等,则可能会发生这种情况。
问题中的代码本身似乎是无害的。几乎可以肯定,您的代码中的缺陷存在于其他地方。