我得到了一個用gcc 3.44編譯的工作程序,但是當我用4.44編譯它時出現了錯誤。函數中的某些局部變量似乎被未知的修改過,因此for循環將不會終止,因爲它的條件中的變量不斷地變爲0,即使它增加了。在循環中調用一個函數似乎沒問題,因爲它返回到了正確的地址。我試圖跟蹤循環受到影響的變量的值,我發現在if分支下調用打印函數後,該值被修改,刪除或添加更多的打印呼叫可以解決它,但我認爲它與無關打印函數並沒有修改該變量的代碼,除了循環中的增量外。我也試着在循環的開始和結束時跟蹤esp,它是一樣的。什麼可能導致這個問題?堆棧問題
Q
堆棧問題
0
A
回答
0
如果這實際上是打印功能的問題,也許你正在用可變參數列表的某些參數破壞堆棧?也許你有關於標準數據類型或枚舉常量之一的假設不再適用?這些是你自己的打印功能嗎?然後嘗試使用gcc的__attribute__
擴展來進行編譯時類型檢查。
+0
我沒有試過4.41 4.42但我有4.44 ... – prinzrainer 2010-11-15 06:45:23
1
您聲明您將從GCC v3.44(代碼工作的地方)到v4.44代碼被破壞的地方。
確保程序的所有其他部分(所有源文件和庫文件)也使用GCC v4.44編譯。你正在調用一個打印函數,所以我猜你指的是glibc中的標準printf函數。所以請確保glibc也是在v4.44下編譯的。
相關問題
- 1. Lua堆棧問題
- 2. 堆棧char問題
- 3. 問題與堆棧
- 4. Thinkster.io MEAN堆棧問題
- 5. 調用堆棧問題
- 6. LINQ堆棧大小問題
- 7. 堆棧排列問題
- 8. PHP調用堆棧問題
- 9. 使用Python堆棧問題
- 10. Viewcontroller堆棧理解問題
- 11. Java中的堆棧問題
- 12. 有趣的堆棧問題?
- 13. 技術堆棧問題
- 14. 問題安裝MEAN堆棧
- 15. Highcharts'驗證堆棧問題
- 16. 徑向堆棧問題
- 17. Android活動堆棧問題
- 18. 不平衡堆棧問題
- 19. Highcharts堆棧列問題
- 20. MEAN堆棧路由問題
- 21. C++堆棧跟蹤問題
- 22. 問題與片段堆棧
- 23. 關於堆棧和堆棧內存使用的問題
- 24. 有關堆棧分配的問題C
- 25. 在Visual Studio F#調用堆棧問題
- 26. 堆棧溢出問題,Asp.net MVC
- 27. Android活動堆棧大小問題?
- 28. Android的碎片堆棧中的問題
- 29. 回到堆棧問題與小部件
- 30. 堆棧推送問題Double和Character
看起來像堆棧損壞。滾入代碼。 – sharptooth 2010-11-11 07:19:50
我可以從這裏完全閱讀你的代碼¬_¬,換句話說,你希望我們幫助你告訴你你的問題是什麼或者只是一個通用的答案,換句話說,更多的信息代碼 – thecoshman 2010-11-11 07:29:24
代碼很長。 ..它實際上是一個ATA驅動器檢測器在PCI總線上爲我的引導程序。我只是想知道爲什麼它在較老的GCC上工作。 – prinzrainer 2010-11-11 08:03:28