5

私のコードでは処理されない例外がスローされますが、Visual Studioのデバッガはシステムによってスローされたデバッガでのみ破損します。Visual Studioでユーザー(std :: exception)の例外を解除しますか?

たとえば、戻り値getaddrinfoはゼロではなく、最初に例外をスローする必要があります。実際には、171行目にブレークポイントを配置するとヒットしますが、デバッガはsocket

私はException Settingsで、I have to add my own types explicitly, or else check All C++ Exceptions not in this listを知っているが、これは私が投げています、とstd::exceptionがチェックあるstd::exceptionです。

例外でVisual Studioデバッガを自動的に中断させるにはどうすればよいですか?

enter image description here

答えて

3

デバッガがスローに壊れていますが、あなたが実際に例外を発生さコールスタックの一番上の機能は表示されていません。

表示されているのは、さらにスタックの下にある機能です。これは、現在呼び出されている関数が次の行を返すときに、socket(...)行であることを示しています。そのため、その行のアイコンは小さな緑色の 'return'アイコンで、黄色の 'execution is currently is here'アイコンではありません。

右、コールスタック上でクリック「のショー外部コード」をクリックして、あなたのようなものが表示されます:

KernelBase.dll!RaiseException(unsigned long dwExceptionCode, unsigned long dwExceptionFlags, unsigned long nNumberOfArguments, const unsigned long * lpArguments) Line 904 C 
vcruntime140d.dll!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo) Line 136 C++ 
ConsoleApplication5.exe!main() Line 6 C++ 
ConsoleApplication5.exe!invoke_main() Line 64 C++ 

注例外が実際にからスローされているそのKernelBase.dll!RaiseExceptionことを。

はい、これはあまりC++に似ていませんが、例外をスローするのは複雑なコードを必要とするメカニズムなので、このように発生します。

+0

マイクありがとうございます。 – sebf

関連する問題