【发布时间】:2011-08-17 17:43:45
【问题描述】:
我正在尝试在 c++/Windows 中实现本文中描述的“调试器主循环”:Writing the Debugger's Main Loop
但我希望任何抛出的异常都能在屏幕上显示错误消息并被调试器捕获。
我知道我可以通过给ContinueDebugEvent 一些 DBG_ 值来做到这一点???但我不知道它是什么。
这个值是多少?
我还注意到,当向控制台写入内容时,控制台应用程序会通知调试器异常。
如何从这些事情中过滤出实际的异常?它与“第一次机会”价值有什么关系吗?
谢谢:)
【问题讨论】:
-
我不明白你的问题。您的应用程序是调试器,因此您是必须显示错误消息的人。
-
这样说吧:如果我调试的应用程序将一个数字除以0,我希望它崩溃! :)
-
将 DBG_EXCEPTION_NOT_HANDLED 传递给 ContinueDebugEvent;这告诉系统让进程继续其正常的异常处理机制(例如,您的调试器没有处理异常)。如果是第二次机会异常,则系统将终止该进程。
-
好的,但是即使它发送通知,因为某些内容已打印到屏幕上,该进程也会终止。是否有办法只过滤致命异常?
-
呃。显然文件不正确;您需要为 OUTPUT_DEBUG_STRING_EVENT 传递 DBG_CONTINUE。 maximumcrack.wordpress.com/2009/06/22/…
标签: c++ windows exception debugging