gpt4 book ai didi

c++ - 堆栈问题

转载 作者:行者123 更新时间:2023-11-28 08:25:44 25 4
gpt4 key购买 nike

我得到了一个用 gcc 3.44 编译的工作程序,但是当我用 4.44 再次编译它时出现了问题。函数中的一些局部变量似乎被 unknown 修改,因此 for 循环不会终止,因为其条件中的变量不断变为 0,即使它是递增的。在循环下调用函数似乎没问题,因为它返回了正确的地址。我尝试跟踪影响循环的变量的值,我发现在 if 分支下调用打印函数后修改了该值,删除或添加更多打印调用解决了它,但我认为它与无关打印函数,除了循环中的增量之外,没有修改该变量的代码。我也试过在循环的开始和结束时跟踪 esp,它是一样的。是什么导致了这个问题?

最佳答案

您声明您要从 GCC v3.44(代码工作的地方)转到代码被破坏的 v4.44。

确保程序的所有其他部分(所有源文件和库文件)也使用 GCC v4.44 编译。您正在调用打印函数,所以我猜您指的是 glibc 中的标准 printf 函数。所以确保 glibc 也是在 v4.44 下编译的。

关于c++ - 堆栈问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com