【问题标题】:GNAT - GVD: not in executable format: File format not recognizedGNAT - GVD:不是可执行格式:文件格式无法识别
【发布时间】:2010-09-16 06:20:30
【问题描述】:

我在运行 GNU Visual Debugger 1.2.6 的 XP 虚拟机上尝试打开 Ada 文件 (.adb),但不断收到以下错误:

不是可执行格式:文件格式 不认识

我还应该提到,我已经为 GNAT 3.14p 安装了 Ada 编译器套件和 win32 工具。

此后,我尝试从 GVD 甚至 .c 文件中打开其他 .adb 文件,但都得到了上述相同的满意响应。

知道为什么会这样吗?

【问题讨论】:

  • 目前,我只是通过使用 gcc 编译器来绕过这个问题,但我仍然对这个错误背后的原因感到好奇。
  • 您使用的是 ancient 版本的 GNAT——而 GVD 早已被弃用。如果可能的话,您应该迁移到 GNAT GPL 2010 (libre.adacore.com/libre)。除此之外,我猜 GVD 的“打开...”期望打开和调试可执行文件,而不是源文件。但说真的,升级!
  • 应该添加 GNAT GPL,您已经将调试器完全集成到 GPS IDE 中。
  • 谢谢,马克。完全集成很好。很少有活动部件。将探索更多。这是教授推荐的课程,所以我试图尽可能接近评估项目的条件!
  • 教授推荐??? 天啊。甚至 GNAT 的最后一个不受限制的免费版本也是 3.15p。去获取 GNAT GPL。

标签: file-format ada executable-format


【解决方案1】:

GVD 不将源文件作为参数,它采用可执行程序。跳过很多 if this 和 if that 来调试 foo.adb 您可能希望将 foo.exe 传递给调试器。

但这是艾达,你不应该在这里。 ;-) 如果您让源程序编译并生成可执行文件,则很少需要运行调试器。我还记得我上次使用带有 GNAT 的调试器是什么时候,以及为什么。 (Solaris 中的一个错误,解决方法是将常量更改为变量——Solaris 覆盖传入的值而不是使用临时值。)但那是什么?五年前?

放入一些调试代码要容易得多(请参阅 GNAT 文档中的 pragma Debug),然后在必要时使用调试标志运行程序。

哦,最重要的。您可能需要查看 C:\GNAT\2010\share\doc\ 以找到 GNAT 附带的所有文档。阅读。或者至少弄清楚如何搜索你需要的东西。 ;-)

【讨论】:

  • 优秀。我开始怀疑它根本不需要来源。我也会检查编译指示调试。我最终还是跑到了命令行编译。
  • 哈哈。不错的想法,但我可以保证一个好的调试器非常方便,即使使用 Ada 代码也是如此。您不必像使用 C 代码那样在调试器中生活,但它会很有帮助。
猜你喜欢
  • 1970-01-01
  • 2018-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 2014-04-03
  • 2011-11-04
相关资源
最近更新 更多