Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
297 views
in Technique[技术] by (71.8m points)

c++ - Where can I see the what() message from an unhandled std::exception in Visual Studio 2012?

Is there a way to see the explanatory string from an unhandled exception? I'm using Visual Studio 2012 Express and can't seem to find a way to see it.

When I run the following code:

#include <stdexcept>

int main(int argc, char* argv[])
{
    throw std::runtime_error("warp core breach");
    return 0;
}

all I get in the output window is this:

First-chance exception at 0x7652C41F in vstest.exe: Microsoft C++ exception: std::runtime_error at memory location 0x0015F6A4.
Unhandled exception at at 0x7652C41F in vstest.exe: Microsoft C++ exception: std::runtime_error at memory location 0x0015F6A4.

I would have expected the "warp core breach" message to be printed there. I have all options under Debugging->Output Window->General Output Settings set to On.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You'll get a window when the exception is thrown with the option to break/continue/ignore. Copy and paste the hex address this dialog reports, then click the break button. Now in a watch window, enter something like: (std::runtime_error*)(0x002cfbc8) into a cell in the first column.

watch window


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...