Saturday, February 19, 2011

_CRT_DEBUGGER_HOOK throws exception

Hi,

I'm having a problem converting my program from VS2005 to VS2008. When I run the program in VS2008, the application starts up fine but when start playing around with the application it crashes giving me this error:

"Microsoft Visual Studio C Runtime Library has detected a fatal error"

And then the debugger points me to this function:

__declspec(noinline)
void __cdecl _CRT_DEBUGGER_HOOK(int _Reserved)
{
/* assign 0 to _debugger_hook_dummy so that the function is not folded
in retail */
(_Reserved);
_debugger_hook_dummy = 0;
}

compiling the application ase release works prefectly...

By the way, this is a native code calling a managed c++ code that wrapps .NET code.

How can I debug such situation ?

Ofer

From stackoverflow
  • Make sure all of your dependencies are also compiled with VS2008 debug.

    I experienced this same issue when compiling a program in VS2008-debug, and some of the dependent DLLs where compiled in VS2003, and also when compiling a program in VS2008-debug and some of the dependencies where compiled as release.

  • Looks like this indeed was the problem.

    Thanks.

    However, compiling the dependicies as Debug fixed the error and I can finally debug my app.

    however, the Release is now broken . I now getting debug assertion failed errors...

    Is there any way to config visual studio to ignore dependencies compilation type? (i.e even I run as Debug, I dont want to compile the dependencies as Debug.

  • The most important thing you need at this point is the stack. Why was _CRT_DEBUGGER_HOOK called?

0 comments:

Post a Comment