首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的服务在Vista上的DebugBreak()崩溃?

为什么我的服务在Vista上的DebugBreak()崩溃?
EN

Stack Overflow用户
提问于 2009-01-23 10:32:03
回答 1查看 1.9K关注 0票数 3

我正在用C++编写一个Win32服务。我有一个自定义的Assert宏,它调用DebugBreak() (以及其他东西)。当我在Vista下运行我的服务时,服务在到达DebugBreak()调用(一个int3汇编操作码)时崩溃,显示vista崩溃对话框。错误代码是80000003 (硬编码断点)。

通常,当没有附加调试器时,我希望我的服务在DebugBreak()调用上运行,而不执行任何操作。为什么它会崩溃?是否有可能更改设置以使其继续运行?

EN

回答 1

Stack Overflow用户

发布于 2009-01-23 10:49:59

通常,当没有附加调试器时,我希望我的服务在DebugBreak()调用上运行,而不执行任何操作。为什么它会崩溃?

MSDN Help for the DebugBreak function表示:“如果进程未被调试,函数将使用标准异常处理程序的搜索逻辑。在大多数情况下,这会导致调用进程因未处理的断点异常而终止。”

是否有可能更改设置以使其继续运行?

您可以尝试添加结构化异常处理程序。

或者,在调用DebugBreak之前检查一些运行时标志。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/472476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档