现在我一年都无法调试我的程序了。当我按下绿色的“运行”按钮时,出现以下错误消息:
全文为:
The GDB command:
"-exec-run"
returned the error:
",msg="Error creating process C:/Users/leven/OneDrive/J\341t\351kpogramok/People/people.exe, (error 193).""
我读过很多关于此错误的论坛,但我的情况看起来有点不同...
在此先感谢您的帮助!
更新:
我发现,该行
p[x,y,2,1]:=r;
不能由编译器调试。 说明:
p: array [1..15000, 1..10000, 1..7, 1..4] of integer;
p []是一个游戏场。前两个参数是坐标,第三个和第四个参数不重要。
x,y和r是整数。
因此,上面看到的命令使用x,y坐标将数字写入游戏字段(p [])数组。
答案 0 :(得分:3)
我认为我们通过一系列查询中的注释确定,引发您所遇到的调试器问题的必要和充分条件是在您的应用程序中包含您已经声明的数组p
的声明。添加到您的q中,即:
var
p: array [1..15000, 1..10000, 1..7, 1..4] of integer;
对于您来说,似乎仅在代码中包含此声明就足以使调试器抛出您引用的错误。
对我来说,调试器可以正常运行,但是在以下代码中分配给p[]
时出现SIGSEGV错误:
var
p: array [1..15000, 1..10000, 1..7, 1..4] of integer;
x,
y,
r : integer;
begin
x := 100;
y := 100;
r := 666;
p[x, y, 1, 1] := r;
writeln('Press any key ...');
readln;
end.
因此,我将尝试为p
数组的前两个边界设置较小的值。如果这样可行,并且您仍然需要原始范围,我建议您寻找一个实现“稀疏数组”的FPC库,并声明p
作为其中的一个。
祝你好运!