DebugBreak() を配置し、Visual Studio セッションにアタッチすることで、[非常に便利に] DLL をデバッグできます。ただし、その DLL は LoadLibrary() を実行して別の DLL を動的にロードします。DLL は期待どおりに実行されますが、ブレークポイントを正しく設定できないようです。
その 2 番目の DLL に DebugBreak() を配置し、そのプロジェクトを使用してそれにアタッチすると、VS セッションは常に、関数の実行が既に終了したように見えた後、プロセス管理をサポートする Visual C++ ライブラリ内のあるポイントにジャンプします。
(crt0dat.c)
void __cdecl __crtExitProcess ( int status ) { __crtCorExitProcess(status);
/*
* Either mscoree.dll isn't loaded,
* or CorExitProcess isn't exported from mscoree.dll,
* or CorExitProcess returned (should never happen).
* Just call ExitProcess.
*/
ExitProcess(status);
}
何が起こっている可能性がありますか?