gpt4 book ai didi

c++ - 我如何在框架中找到 argc 的地址?

转载 作者:太空宇宙 更新时间:2023-11-04 11:41:20 29 4
gpt4 key购买 nike

我正在尝试查找 C++ 程序中的段错误。我注意到在发生段错误时 argc 已被修改为非常大的数字。该数字恰好是我的应用程序地址空间中的一个地址。这让我相信有什么东西正在破坏我的主堆栈框架。问题是,如何获取指向 argc 的堆栈地址,以便我可以知道是什么方法修改了我程序中的参数?我想单步执行程序并观察地址空间的变化。这个段错误发生在 hpux 和 aix 上(现在我正在查看 hpux)。我一直在查看堆栈,但找不到将我的 argc 变量插入堆栈的任何位置。我正在使用 gdb 进行调试。

有谁知道 argc 将存储在 hpux pa-risc 机器的堆栈框架中的什么位置?

最佳答案

显然 hpux pa-risc 将 argc 存储在寄存器中,而不是内存中(当我执行 p &argc 时 gdb 告诉我)。 argc 只改变了,因为 hpux pa-risc 重新分配了寄存器,因为它没有被使用。在 Linux 上,argc 存储在堆栈中。

关于c++ - 我如何在框架中找到 argc 的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21321601/

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