简体   繁体   English

调试器错误193 lazarus

[英]Debugger error 193 lazarus

I can't debug one of my programs for a year now. 我现在无法调试我的一个程序。 When I press the green Run button, the following error message appears: 当我按下绿色运行按钮时,会出现以下错误消息:

在此输入图像描述

The full text is: 全文是:

The GDB command:
"-exec-run"
returned the error:
",msg="Error creating process C:/Users/leven/OneDrive/J\341t\351kpogramok/People/people.exe, (error 193).""

I've read many forums about this error, but my case looks a bit different... 我已经阅读了很多有关此错误的论坛,但我的情况看起来有点不同......

  1. As you can see, the file's path doesn't include any characters that could occur this problem (no spaces, no special letters). 如您所见,文件的路径不包含任何可能出现此问题的字符(没有空格,没有特殊字母)。 I've tried running outside OneDrive, same error. 我试过在OneDrive外面跑,同样的错误。
  2. I've spent a lot of time looking for something in my program that occurs this error and found that if I delete some parts of it (eg. a few procedures or functions, which contains a lot of code though), the program is debuggable again! 我花了很多时间在我的程序中寻找发生此错误的内容并发现如果我删除它的某些部分(例如,一些程序或函数,其中包含大量代码),该程序是可调试的再次! So the trouble is with some parts of the program, but I still don't know the exact problem. 所以问题在于程序的某些部分,但我仍然不知道确切的问题。
  3. As I can remember, I've always debugged this program in a 64bit OP. 我记得,我总是用64位OP调试这个程序。
  4. The one thing that could be problematic is that I probably started writing the program using Windows 7 or 8, and now I want to run it using Windows 10, but I still don't understand, why deleting some parts of the program is a solution... 可能有问题的一件事是我可能开始使用Windows 7或8编写程序,现在我想使用Windows 10运行它,但我仍然不明白,为什么删除程序的某些部分是一个解决方案...

Thanks in advance for your help! 在此先感谢您的帮助!

UPDATE: 更新:

I've found, that the line 我发现,那条线

p[x,y,2,1]:=r;

cannot be debugged by the compiler. 无法由编译器调试。 Description: 描述:

p: array [1..15000, 1..10000, 1..7, 1..4] of integer;

p[] is a game field. p []是一个游戏领域。 The first two parameters are coordinates, the third and the fourth are not important. 前两个参数是坐标,第三个和第四个参数并不重要。

x, y and r are integers. x,y和r是整数。

So, the command seen above writes a number into the game field (p[]) array using the x, y coordinates. 因此,上面看到的命令使用x,y坐标将数字写入游戏区域(p [])数组。

I think we established through a series of queries in comments that the necessary and sufficient condition to provoke the debugger problem you've been getting is to include in your app the declaration of the array p that you've added to your q, that is: 我认为我们通过评论中的一系列查询确定了引发调试器问题的必要和充分条件是在您的应用程序中包含您已添加到q的数组p的声明,即:

var
  p: array [1..15000, 1..10000, 1..7, 1..4] of integer;

For you, it seems that just including this declaration in your code is sufficient to make the debugger throw the error you quote. 对于您来说,似乎只需在代码中包含此声明即可使调试器抛出您引用的错误。

For me the debugger starts fine but I get a SIGSEGV error on the assignment to p[] in the following code: 对我来说,调试器启动正常,但我在以下代码中对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.

So, I would try smaller values for the first two bounds of the p array. 所以,我会尝试p数组前两个边界的较小值。 If that works and you still need the original bounds, I would suggest looking for an FPC library which implements "sparse arrays" and declare p as one of those. 如果这样做仍然需要原始边界,我建议寻找一个实现“稀疏数组”的FPC库,并将p声明为其中之一。

Good luck! 祝好运!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 LoadLibrary 失败,错误代码 193 - LoadLibrary fails with error code 193 Netbeans C ++错误:193 - Netbeans C++ error: 193 Jenkins Windows节点返回CreateProcess错误= 193 - Jenkins Windows Node returning CreateProcess error=193 错误 193:“%1 不是 Windows Server 2003 上的有效 Win32 应用程序 - Error 193: '%1 is not a valid Win32 application on Windows Server 2003 错误193使用CDB调试MSI安装程序执行 - Error 193 debugging msi installer execution using cdb 用链接链接MASM程序会导致加载mspdbcore.dll出错(错误代码:193) - Linking MASM-program with link results in error to load mspdbcore.dll (error code: 193) 在win2k3上转换为VC2012后,Windows Service启动错误错误193 0xc1 - Windows Service start error error 193 0xc1 after converted to VC2012 on win2k3 193:%1在Windows 7上使用Rails(3.2.3)和MySQL(5.5)上的Ruby(1.9.3)不是有效的Win32应用程序错误 - 193: %1 is not a valid Win32 application error with Ruby (1.9.3) on Rails(3.2.3) with MySQL(5.5) on Windows 7 为什么 CreateProcess 给出错误 193(%1 不是有效的 Win32 应用程序) - Why does CreateProcess give error 193 (%1 is not a valid Win32 app) 在[错误193]中调用外部程序结果%1不是有效的Win32应用程序 - python Call to external program results in [Error 193] %1 is not a valid Win32 application
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM