當我嘗試運行我的程序時,它永遠不會進入main()函數,而是掛起。有些時候,我的程序在多次調用ntdll.dll之後,在堆棧中的第一個調用中拋出了一個異常。異常似乎是導致我的程序掛起「<壞ptr>」的因素。我無法觸發任何我設定的斷點,這使得難以找到問題的起因。C++程序在執行ntdll.dll時掛起
1
A
回答
3
您需要確定導致崩潰的系統調用。通常這種事情是將垃圾傳入某些Windows API的結果。
使用調試器並查看調用堆棧。代碼中的最後一項很可能是問題的原因。它可能有一些不正確的數據處理不當。
1
這聽起來像你正在使用全局對象/單身人士。如果其中任何一個取決於對方,你就有麻煩了。我會尋找所有的全局變量,並在每個構造器中設置一個斷點。這聽起來像是一個全球的構造者正在使用另一個全球化,但第二個尚未被構建。
最後,如果這不是原因,並且您的應用程序正在加載第三方dll,它們可能會發生衝突。我記得有一次,orbix和ms消息隊列dll在一個之前被加載,如果它們被反向加載,所有的都可以工作。最後找到這個我刪除了所有東西,直到我剩下一個空的主體,然後開始逐個添加東西,直到我發現問題。
相關問題
- 1. Turbo C在執行C冒泡排序程序時掛起
- 2. 程序在執行時掛起
- 3. 程序在執行時掛起
- 4. C程序掛起當執行
- 5. C程序執行後掛起
- 6. pthreads C程序掛起執行
- 7. C中的遞歸階乘程序在執行時掛起
- 8. 執行從PHP程序掛起APACHE
- 9. 使用cin.getline()時C++程序掛起
- 10. BCP任務在執行時掛起
- 11. MSTest在執行Web測試時掛起
- 12. 程序在使用進程時掛起
- 13. C++ JNI在執行任何IO /流時崩潰/掛起
- 14. Javafx應用程序在執行時掛起線程等待並通知
- 15. 在執行SwingWorker之前掛起Java文件傳輸程序
- 16. Chrome驅動程序在執行期間間歇性掛起
- 17. C#應用程序過程在一段時間後掛起
- 18. 執行播放時掛起命令
- 19. 執行subprocess.Popen時掛起('su',shell = True)
- 20. 執行命令時,simplessh庫掛起
- 21. 執行grails命令時,IntelliJ 11掛起
- 22. 黑莓服務線程在執行時掛起ui
- 23. ntdll.dll調用掛鉤問題
- 24. 掛起信號處理程序中的線程執行
- 25. 在C#中掛起進程#
- 26. 程序在解析Double值時掛起?
- 27. 程序在使用「matplotlib.mlab.griddata」時掛起
- 28. PHP PDO執行掛起執行
- 29. 當一個MPI進程執行MPI_Barrier()時,其他進程掛起
- 30. PDO執行語句掛起
添加更多信息,即:掛起時的堆棧轉儲,調用內核的API調用以及崩潰周圍的源代碼。 – 2009-08-13 18:27:08
ntdll點是irelevant,是線程轉換到內核的時候。添加完整的堆棧。 – 2009-08-13 18:32:02