gpt4 book ai didi

c++ - 无法中断执行。该进程当前未执行该类型代码

转载 作者:行者123 更新时间:2023-11-28 02:14:53 24 4
gpt4 key购买 nike

我在使用 Visual Studio 2010 时遇到一个奇怪的问题。

我正在运行一个 DLL,它是从 Microsoft 的 w3p.exe 进程中的 IIS 加载的。当我在另一台机器上启动远程调试器并将我的本地机器连接到那里时,一切都很好,我可以调试了。问题是当我在本地运行它时。我知道 DLL 已加载(因为日志文件),我可以将调试器附加到进程。但是当我尝试 Break all 时,我收到一条错误消息

Unable to break execution. This process is not currently executing the type of code you selected to debug.

项目设置肯定是指向刚刚编译运行DLL的项目,所以我不太理解这个错误信息。

此外,当我设置断点时,什么也没有发生。调试器已附加,因为当我停止 IIS 时,我收到一条错误消息,告诉我需要先停止调试器。

我正在使用一个有意的应用程序错误 fopen(NULL, NULL) 这将允许我在调试版本中附加一个调试器。但这很烦人,因为我必须在真正开始调试之前手动清除调用堆栈。使用 __debugbreak() 没有帮助,所以我不得不使用这个笨拙的解决方法。

那么谁能告诉我为什么这可以远程工作,但不能在本地工作?

最佳答案

所以我终于找到了解决问题的方法。

打开附加对话框时,有一个选项 Attach to: Managed... 旁边有一个 Select 按钮。默认情况下,它被设置为 Managed (v4.0)。现在我添加了 Native code 并且这解决了我的问题。我现在也可以在本地附加。

我确实不明白为什么这在远程机器上有效,因为代码虽然完全相同,所以不应该有这样的差异。

关于c++ - 无法中断执行。该进程当前未执行该类型代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34312542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com