我正在使用的库(zmq)抛出异常。调试器中断并通知我。
如果可能的话,我怎么能看到这个例外。具体是what()消息? 无需在其周围放置try / catch并打印到输出流。
我已经读过这可以在使用CLR时完成 - 我可以在常规C ++中完成吗?
答案 0 :(得分:3)
引用此answer:
当抛出异常并带有break / continue / ignore选项时,您将获得一个窗口。复制并粘贴此对话框报告的十六进制地址,然后单击中断按钮。现在在观察窗口中输入类似:
的内容(std::exception*)0xXXXXXXXX
答案 1 :(得分:1)
(1)请检查在工具 - >选项 - >调试 - >输出窗口下的输出窗口中是否启用了异常消息。
(2)如果它仍然没有异常消息,一个可能的原因是zmq确实不支持VS的异常抛出功能。当然,您可以编写一个通用的应用程序,如C#或VC ++,可以证明它。如果其他应用没有此问题,我们会考虑具体的zmq。
答案 2 :(得分:0)
步骤1.识别异常(它将记录在VS的输出窗口中) 步骤2.使用从输出中看到的异常放置异常断点。
如果这是ZeroMQ,我会打赌你在REQ套接字上发送2个请求而不等待回复。
答案 3 :(得分:0)
答案 4 :(得分:0)
据我所知,这目前无法实现。我添加了一个用户语音建议here,但我不确定微软何时会实现此功能。
目前,你可以做的是采用异常的类型和位置(来自消息' 地址 strong>在模块:Microsoft C ++例外:在内存位置键入 位置。',然后添加到Watch窗口表达式“(类型*)位置”。如果类型是您无权访问的某种内部异常类型,那么您可以希望它来自 std ::例外并转而使用它。