当我尝试运行我的程序时,它永远不会进入main()函数,而是挂起。有些时候,我的程序在多次调用ntdll.dll之后,在堆栈中的第一个调用中抛出了一个异常。异常似乎是导致我的程序挂起“<坏ptr>”的因素。我无法触发任何我设定的断点,这使得难以找到问题的起因。C++程序在执行ntdll.dll时挂起
1
A
回答
3
您需要确定导致崩溃的系统调用。通常这种事情是将垃圾传入某些Windows API的结果。
使用调试器并查看调用堆栈。代码中的最后一项很可能是问题的原因。它可能有一些不正确的数据处理不当。
1
这听起来像你正在使用全局对象/单身人士。如果其中任何一个取决于对方,你就有麻烦了。我会寻找所有的全局变量,并在每个构造器中设置一个断点。这听起来像是一个全球的构造者正在使用另一个全球化,但第二个尚未被构建。
最后,如果这不是原因,并且您的应用程序正在加载第三方dll,它们可能会发生冲突。我记得有一次,orbix和ms消息队列dll在一个之前被加载,如果它们被反向加载,所有的都可以工作。最后找到这个我删除了所有东西,直到我剩下一个空的主体,然后开始逐个添加东西,直到我发现问题。
相关问题
- 1. 程序在执行时挂起
- 2. C程序执行后挂起
- 3. pthreads C程序挂起执行
- 4. C中的递归阶乘程序在执行时挂起
- 5. 使用cin.getline()时C++程序挂起
- 6. BCP任务在执行时挂起
- 7. 程序在使用进程时挂起
- 8. C++ JNI在执行任何IO /流时崩溃/挂起
- 9. Javafx应用程序在执行时挂起线程等待并通知
- 10. Chrome驱动程序在执行期间间歇性挂起
- 11. ntdll.dll调用挂钩问题
- 12. 执行subprocess.Popen时挂起('su',shell = True)
- 13. 执行grails命令时,IntelliJ 11挂起
- 14. C#应用程序过程在一段时间后挂起
- 15. 程序在使用“matplotlib.mlab.griddata”时挂起
- 16. 程序在解析Double值时挂起?
- 17. 在C#中挂起进程#
- 18. 当一个MPI进程执行MPI_Barrier()时,其他进程挂起
- 19. 量角器执行挂起
- 20. PDO执行语句挂起
- 21. 为什么执行应用程序时批处理文件有时会挂起?
- 22. readObject()挂起程序
- 23. 程序执行完成后网页挂起
- 24. StandardOutput.ReadLine()应用程序挂起使用C#
- 25. 使用Xcode 4.3.2在iOS 3.1.3设备上进行调试时,应用程序挂起应用程序挂起
- 26. C++运行时函数挂起
- 27. 如何在执行运行时命令后停止java挂起
- 28. 在C中执行程序
- 29. 程序仅在第一次运行时挂起?
- 30. 进程挂起在父进程中C
添加更多信息,即:挂起时的堆栈转储,调用内核的API调用以及崩溃周围的源代码。 – 2009-08-13 18:27:08
ntdll点是irelevant,是线程转换到内核的时候。添加完整的堆栈。 – 2009-08-13 18:32:02