【问题标题】:Delphi/android how to find the involved line of code by it's addressDelphi / android如何通过它的地址找到涉及的代码行
【发布时间】:2017-03-26 18:08:28
【问题描述】:

在 delphi 和 android 下,我的应用程序会出现此错误:E/LogError(22894):地址 830330D2 的访问冲突,访问地址 00000000

他们有什么方法可以知道与代码行连接的地址 830330D2 吗?

【问题讨论】:

  • 您是否尝试使用带有 f7 的调试器(逐条指令),当您到达该行代码时会出现错误。
  • 我不知道这是否也适用于Android,但在PC上,当您使用F4启动调试器时(它将在您的dpr文件的开始行中断)然后选择搜索-> Go To Address,你可以输入地址,调试器会尝试找到与之对应的单元和行。
  • @NasreddineAbdelillahGalfout 否,因为该错误很难重现,而且当我遇到该错误时,我并未在调试会话中
  • 这种类型的错误令人头疼,如果你不能重现它,那么它可能是任何东西(可能是逻辑而不是代码,你正在尝试使用你已经释放的东西)。我建议您尝试执行相同的操作,并希望再次出现错误。
  • 并不比其他类型的错误更令人头疼。它显然是空指针引用。进行调试。

标签: android delphi firemonkey


【解决方案1】:

您是否生成了 .MAP 文件?这是将地址连接到它所属的代码行的典型(如果稍微手动)方式,如果它确实是代码中的地址。找到最近的地址,考虑任何隐含的起始偏移量。

您可能需要查看this Stack Overflow answer 才能对其进行测试,因为我认为 Delphi 10.2 Tokyo 仍然“难以”访问所需的选项。基本上插入命令行编译器开关以在 IDE 编译器选项字段中生成一个 .MAP 文件。

很遗憾,我手头没有支持 Android 的产品来验证地图文件的确切步骤,但希望这对您有所帮助。

【讨论】:

  • 哦,看起来不太容易做到:(
  • 好的,我刚刚生成了地图文件,现在如何找到所需的行?
猜你喜欢
  • 2013-04-01
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2019-11-27
  • 2011-06-29
  • 2014-01-10
  • 2012-01-11
相关资源
最近更新 更多