我如何在框架中找到ARGC的地址
How do I find the address of argc in the frame?
我正在尝试在C 程序中跟踪Segfault。我注意到在Segfault时,ARGC已被修改为非常大的数量。该号码恰好是我应用程序地址空间中的一个地址。这使我相信有些东西正在破坏我的主要堆栈框架。问题是,我如何在堆栈上获得指向ARGC的堆栈地址,以便我可以分辨出哪种方法正在修改程序中的参数?我想逐步浏览该程序,并观察该解决方案以进行更改。这种segfault正在HPUX和AIX上发生(现在我正在看HPUX)。我一直在浏览堆栈,但是找不到将ARGC变量推到堆栈的任何地方。我正在使用GDB进行调试。
有人知道ARGC将在HPUX PA-RISC机器的堆栈框架上存储在哪里?
显然是寄存器中的hpux pa-risc商店argc,而不是在内存中(当我做p& argc时,gdb告诉我)。ARGC之所以更改,是因为HPUX PA-RISC重新分配了寄存器,因为它没有使用。在Linux上,ARGC存储在堆栈中。
相关文章:
- 将数组的地址分配给变量并删除
- 空基优化子对象的地址
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 如何在c++程序中找到函数的地址
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 被解释为低级别const的const对象的地址
- 将地址分配给本地指针后,公共对象的变量将消失
- 为什么我在leetcode上收到AddressSanitizer:地址0x602000000058上的堆缓冲区溢出错误
- 内联程序集printf将整数解释为地址
- 为什么指针不写入类的地址?
- 如何在C++中获取该对象的类声明中对象的地址?
- 通过按地址访问变量
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- 函数名是c中该函数的第一条指令的地址吗
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- ReadProcessMemory() 不适用于像 0x2840C6C68D8 这样的长地址
- CUDA:统一内存和指针地址的更改
- 我如何在框架中找到ARGC的地址
- 如果我使用一个结构体来携带argc和argv,我如何将地址argv赋值给结构体中的变量?