我有一个调用DLL的可执行文件。我可以通过将DLL的VS2008项目附加到可执行文件的过程来逐步执行DLL代码。我已经调试了一些错误/异常。但是现在,正是当DLL的主要功能返回时,可执行进程崩溃而没有任何错误/异常。为了调试崩溃,我尝试使用崩溃转储文件,但基于this link,看起来它们不适用于VS2008。
我可以使用哪些可能的工具来调试崩溃?
进程在死亡时调用它:
TerminateProcess(GetCurrentProcess(), STATUS_INVALID_CRUNTIME_PARAMETER);
答案 0 :(得分:1)
TerminateProcess(GetCurrentProcess(), STATUS_INVALID_CRUNTIME_PARAMETER);
强烈表明运行时库终止了您的进程,因为您将错误的参数传递给库函数。而“坏”是如此糟糕,以至于无法合理地继续下去。您可能不会将某些内容视为sqrt(-1.0)
,但可能strlen(NULL)
或std::sort(... , &std::equal<int>)
[编辑]
要找到根本原因,可以帮助提供invalid_parameter_handler)(
。在其中,调用__debugbreak
来调用调试器。堆栈跟踪现在将显示原因。