我得到了一个用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