在启用调试信息的情况下,无法在发布配置中调试 64 位应用程序

Unable to debug 64-bit application in release configuration, with Debug information enabled

我正在尝试调试 发布配置 - 64 位 Windows 平台 中的应用程序,但不会命中任何断点。

我启用了编译器调试信息选项:

可以调试处于32位发布配置的应用程序;断点工作正常。

| Configuration | 32-bit     | 64-bit     |
|---------------|------------|------------|
| Debug         | Debuggable | Debuggable |
| Release       | Debuggable | Fails      |

All with "Debug information" set to "Debug information", 
and full build (Shift+F9) before running.

所以三个问题:

奖金截图

32 位版本链接器选项:

64 位版本链接器选项:

我认为您需要在链接器选项中启用调试信息。至少,当我禁用它时,断点不会命中,而当我启用该设置时,断点会命中。

总而言之,据我所知,通过使用可靠的反复试验技术,您需要满足以下条件才能启用调试:

  • 32 位:启用编译器调试信息。
  • 64 位:启用编译器和链接器调试信息。

我有一个链接到我自己的 6 个包的项目,并且已经转移到 64 位。所有调试在 win32 中都很好,但在 win64 中不会在断点处停止。

我发现 project\search 路径中需要 dcp 文件的路径,而且它不能是相对的!
它适用于变量,例如 C:\dcp$(Platform)$(Config) 但不适用于 ..\Dcp$(Platform)$(Config)

我认为问题是 win32 调试发生 'in house' 但由于 ide 不是 64 位调试必须发生 ide (因为必须为 64 位启用远程调试) 和远程调试器的起始目录不同,因此相对路径将相对于其他位置。

我也启用了地图文件,但我认为这没有什么不同,因为相对路径没有任何作用。

很抱歉回答了一个非常老的问题,但在发疯了一整天之后,我不得不告诉别人,并且我确信将来我将不得不 google 回答这个问题,因为我现在忘记了相对路径的粉丝。