【发布时间】:2011-11-07 23:48:54
【问题描述】:
我有一个由 D2006 编译器生成的 EXE,以及与该 EXE 位于同一文件夹中的相关 RSM 和 MAP 文件。这些文件在安装 Delphi 的机器上是本地的。我可以启动 IDE 并“加载进程”EXE 并运行它,但如果我暂停执行,我将看不到任何符号信息。
我必须做些什么才能在反汇编中看到过程名称等作为标签,并能够通过指定例程名称来“转到”地址?
如果我在同一文件夹中有可用的源,我可以进行高级步进等吗?
【问题讨论】:
-
AFAIK,这行不通。 Delphi 使用位于 .dcu 文件中的调试信息进行调试。您可能可以使用带有 .rsm 符号的“远程调试”来完成此操作,但不能通过 IDE 的调试器直接加载进程,而且我认为您仍然需要本地的 .dcu 文件才能使用远程调试器执行此操作。您拥有应用程序的源代码(您说“在同一文件夹中可用的源代码”)。为什么不在 IDE 中加载项目并正常调试?
-
谢谢@Ken。当我部署可执行文件并保存可执行文件、MAP 和 RSM 文件以及当时的源集时。如果我在该领域的先前构建中遇到错误,我想我可以将该文件集恢复到一个临时文件夹,加载 EXE 并使用 IDE 在源代码级别调试代码。你说的是我还需要保存 DCU 文件。虽然我可以在 IDE 中加载该文件集并对其进行调试,但我会遇到一些使用的库例程将“继续”的问题。也许答案是改用远程调试器(我从未使用过)。
-
是的,我知道版本控制系统会让我这样做......
标签: delphi debugging exe delphi-2006 disassembly