我可以在 Visual Studio 2017 调试器中查看未处理的异常吗?

seb*_*ebf 6 c++ debugging visual-studio

我正在使用的库(zmq)抛出异常。调试器中断并通知我。

如果可能的话,我怎样才能看到这个异常。具体来说是什么()消息?无需在其周围放置 try/catch 并打印到输出流。

  • 它不会出现在汽车或本地监视列表中。我已经搜索了它发生点周围的堆栈帧。
  • 将 $exception 添加到手动监视列表只会返回“标识符 $exception 未定义”值
  • 使用内存资源管理器询问异常的位置不会显示任何有用的信息。

我读过这可以在使用 CLR 时完成 - 我可以在常规 C++ 中完成吗?

Sha*_* Lu 5

参考这个答案

当抛出异常时,您将看到一个窗口,其中包含中断/继续/忽略的选项。复制并粘贴此对话框报告的十六进制地址,然后单击中断按钮。现在在监视窗口中输入如下内容:

(std::exception*)0xXXXXXXXX
Run Code Online (Sandbox Code Playgroud)

  • 每次(手动)执行此操作非常烦人。难道就没有更好的办法吗? (2认同)

小智 0

步骤 1. 识别异常(它将记录在 VS 的输出窗口中) 步骤 2. 将异常断点放置在您从输出中看到的异常处。

如果这是 ZeroMQ,我敢打赌您会在 REQ 套接字上发送 2 个请求,而不等待回复。