C++ 调试器主循环
我试图在c++/Windows中实现本文中描述的“调试器主循环”: 但是我希望任何抛出的异常都向secreen显示一条错误消息,并被调试器捕获。 我知道我可以通过给DBG_254;的一些值来实现这一点???但我不知道它是什么。C++ 调试器主循环,c++,windows,exception,debugging,C++,Windows,Exception,Debugging,我试图在c++/Windows中实现本文中描述的“调试器主循环”: 但是我希望任何抛出的异常都向secreen显示一条错误消息,并被调试器捕获。 我知道我可以通过给DBG_254;的一些值来实现这一点???但我不知道它是什么。 这个值是多少 我还注意到,当向控制台写入某些内容时,控制台应用程序会通知调试器异常。 我如何从这些东西中过滤出实际的异常?它是否与“第一次机会”值有关? 谢谢:)对于调试对象中发生的每个异常,调试器都会收到一个异常事件。 如果将DBG\u CONTINUE传递给Conti
这个值是多少 我还注意到,当向控制台写入某些内容时,控制台应用程序会通知调试器异常。 我如何从这些东西中过滤出实际的异常?它是否与“第一次机会”值有关?
谢谢:)对于调试对象中发生的每个异常,调试器都会收到一个异常事件。 如果将
DBG\u CONTINUE
传递给ContinueDebugEvent
,调试器将接受异常并继续执行,就好像一开始没有发生异常一样。这意味着调试对象也不会收到通知。
另一方面,如果您通过了DBG\u异常\u未处理
,则会通知调试对象并负责处理异常
现在,如果调试对象不处理(读取:捕获)异常,则会再次通知调试器,这次将Event.u.exception.dwFirstChance
设置为0。此时,如果您通过DBG\u exception\u NOT\u HANDLED
,异常将终止进程
要记住两件事:
- 将字符串传递给调试器的正常方式是
。不需要使用自定义异常,除非需要传递字符串以外的内容OutputDebugString
- 如果您确实计划抛出自己的异常以将某些事件传递给调试器,请检查
,查看它是否与预定义的异常类型匹配,并在这种情况下使用Event.u.exception.ExceptionRecord.ExceptionCode
DBG\u CONTINUE