无法中断执行.此进程当前未执行该类型的代码
Unable to break execution. This process is not currently executing the type of code
我在使用Visual Studio 2010时遇到了一个奇怪的问题。
我正在运行一个DLL,它是在Microsoft的进程w3p.exe
中从IIS
加载的。当我在另一台机器上启动远程调试器并将本地机器连接到那里时,一切都很好,我可以调试了。问题是当我在本地运行它时。我知道DLL已经加载(因为日志文件),并且我可以将调试器附加到进程。但当我尝试Break all
时,我收到一个错误,说
无法中断执行。此进程当前未执行您选择要调试的代码类型。
项目设置肯定指向刚刚编译运行DLL的项目,所以我真的不理解这个错误消息。
此外,当我设置断点时,不会发生任何事情。调试器是附加的,因为当我停止IIS
时,我会收到一条错误消息,告诉我需要首先停止调试器。
我使用了一个故意的应用程序错误fopen(NULL, NULL)
,这将允许我在调试构建中附加一个调试器。但这相当麻烦,因为在真正开始调试之前,我必须手动清除调用堆栈。使用__debugbreak()
没有帮助,所以我不得不使用这个笨拙的变通方法。
有人能告诉我为什么这是远程工作,而不是本地工作吗?
所以我终于找到了解决问题的方法。
打开附加对话框时,有一个选项Attach to: Managed...
,旁边有一个Select
按钮。默认情况下,此选项设置为Managed (v4.0)
。现在我添加了Native code
,这解决了我的问题。我现在也可以在本地附加。
我当然不明白为什么这在远程机器上有效,因为代码完全相同,所以不应该有这样的区别。
相关文章:
- 在C++中对T*类型执行std::move的意外行为
- 仅在函数模板中为那些定义了函数的类型执行函数
- C++将一个指针分配给另一个指针时执行的类型检查
- C++如何乘以包含 std::variant 元素的向量的迭代器?正在执行迭代器类型的转换?
- 当前不会命中断点。没有调试器目标代码类型的可执行代码与此文件关联
- Eclipse 可执行架构类型
- 如何检查参数包是否具有执行顺序中的确切类型
- 如何对模板类型强制执行常量
- 执行特定函数取决于类型
- 动态控制C++的执行策略类型
- 根据运行时提供的类型执行模板函数
- 如何在执行期间终止(或返回)具有结构类型的自动函数
- 如何动态执行具有任意参数类型的函数指针
- VIM:执行复杂文件类型的脚本和显示结果
- 根据类模板的类型参数自动执行类模板的大小参数
- 如何执行两个函数参数具有相同的模板类型
- C++ 11/14 根据模板类型在单个函数中执行不同的操作
- C++ 仅当模板为字符串类型时执行小写转换
- 有没有一种好的方法可以在C++中的可变模板中对函数参数强制执行类型限制
- 为什么编译器不执行类型转换?