Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;程序在ntdll.dll执行时挂起_C++ - Fatal编程技术网

C++ C++;程序在ntdll.dll执行时挂起

C++ C++;程序在ntdll.dll执行时挂起,c++,C++,当我尝试运行程序时,它从未进入main()函数,只是挂起。然而,我的程序在多次调用ntdll.dll之后,在堆栈中的第一个调用中,在我的一个类中抛出了一个异常。异常似乎是导致我的程序挂起并带有“”的因素。但是,我无法触发我设置的任何断点,因此很难找到问题的根源。您需要找出导致崩溃的系统调用。通常,这种事情是将垃圾传递到某些windows API的结果 使用调试器并查看调用堆栈。代码中的最后一个条目可能是问题的原因。它可能有一些不正确的数据。您需要找出导致崩溃的系统调用。通常,这种事情是将垃圾传递

当我尝试运行程序时,它从未进入main()函数,只是挂起。然而,我的程序在多次调用ntdll.dll之后,在堆栈中的第一个调用中,在我的一个类中抛出了一个异常。异常似乎是导致我的程序挂起并带有“”的因素。但是,我无法触发我设置的任何断点,因此很难找到问题的根源。

您需要找出导致崩溃的系统调用。通常,这种事情是将垃圾传递到某些windows API的结果


使用调试器并查看调用堆栈。代码中的最后一个条目可能是问题的原因。它可能有一些不正确的数据。您需要找出导致崩溃的系统调用。通常,这种事情是将垃圾传递到某些windows API的结果


使用调试器并查看调用堆栈。代码中的最后一个条目可能是问题的原因。它可能有一些不正确的数据。这听起来像是在使用全局对象/单例。如果其中任何一个相互依赖,你就有麻烦了。我会寻找你们所有的球,并在每一个球的构造器中设置一个断点。听起来好像一个全局的构造函数正在使用另一个全局,但第二个全局的构造函数还没有被构造出来


最后,如果这不是原因,并且您的应用程序正在加载第三方DLL,它们可能会发生冲突。我记得有一次,orbix和ms消息队列DLL分类在一个之前被加载,如果它们以相反的方式加载,一切都会正常工作。最后,为了找到这个问题,我删除了所有东西,直到只剩下一个空的main,然后开始一个接一个地添加东西,直到发现问题。

这听起来像是在使用全局对象/单例。如果其中任何一个相互依赖,你就有麻烦了。我会寻找你们所有的球,并在每一个球的构造器中设置一个断点。听起来好像一个全局的构造函数正在使用另一个全局,但第二个全局的构造函数还没有被构造出来


最后,如果这不是原因,并且您的应用程序正在加载第三方DLL,它们可能会发生冲突。我记得有一次,orbix和ms消息队列DLL分类在一个之前被加载,如果它们以相反的方式加载,一切都会正常工作。最后,为了找到这个问题,我删除了所有内容,直到只剩下一个空的main,然后开始逐个添加内容,直到发现问题。

添加更多信息,即:挂起时的堆栈转储、调用内核的API调用以及崩溃时的源代码。ntdll点是irelevant,是线程转换为内核的时间。添加完整堆栈。添加更多信息,例如:挂起时的堆栈转储、调用内核的API调用以及崩溃时的源代码。ntdll点是iRelant,是线程转换到内核时的点。添加完整的堆栈。