Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在框架中找到argc的地址? 我试图在C++程序中找到一个Sebug。我注意到,在SEGFULT发生时,argc已被修改为一个非常大的数字。这个数字恰好是我的应用程序地址空间中的一个地址。这让我相信有什么东西正在破坏我的主堆栈框架。问题是,我如何在堆栈上获得指向argc的地址,这样我就可以知道是什么方法在修改程序中的参数了?我想一步一步地浏览程序,并观察地址空间的变化。 这个错误发生在hpux和aix上(现在我正在研究hpux)。我一直在查看堆栈,但是我找不到我的argc变量被推到堆栈的任何地方。 我正在用gdb调试_C++_Unix_Segmentation Fault_Callstack - Fatal编程技术网

如何在框架中找到argc的地址? 我试图在C++程序中找到一个Sebug。我注意到,在SEGFULT发生时,argc已被修改为一个非常大的数字。这个数字恰好是我的应用程序地址空间中的一个地址。这让我相信有什么东西正在破坏我的主堆栈框架。问题是,我如何在堆栈上获得指向argc的地址,这样我就可以知道是什么方法在修改程序中的参数了?我想一步一步地浏览程序,并观察地址空间的变化。 这个错误发生在hpux和aix上(现在我正在研究hpux)。我一直在查看堆栈,但是我找不到我的argc变量被推到堆栈的任何地方。 我正在用gdb调试

如何在框架中找到argc的地址? 我试图在C++程序中找到一个Sebug。我注意到,在SEGFULT发生时,argc已被修改为一个非常大的数字。这个数字恰好是我的应用程序地址空间中的一个地址。这让我相信有什么东西正在破坏我的主堆栈框架。问题是,我如何在堆栈上获得指向argc的地址,这样我就可以知道是什么方法在修改程序中的参数了?我想一步一步地浏览程序,并观察地址空间的变化。 这个错误发生在hpux和aix上(现在我正在研究hpux)。我一直在查看堆栈,但是我找不到我的argc变量被推到堆栈的任何地方。 我正在用gdb调试,c++,unix,segmentation-fault,callstack,C++,Unix,Segmentation Fault,Callstack,有人知道argc将存储在hpux pa risc机器的堆栈框架上的什么位置吗?显然,hpux pa risc将argc存储在寄存器中,而不是内存中(当我进行p&argc时,gdb通知了我)。argc仅因hpux pa risc重新分配寄存器而更改,因为它未被使用。在linux上,argc存储在堆栈上。我希望变量正好位于堆栈底部附近,但我没有看到它。在main的开头附近放置一个断点,调试器应该能够为您提供地址(一个好的调试器还可以让您查看内存位置)。如果您可以调试并且调试器有任何意义,则应在arg

有人知道argc将存储在hpux pa risc机器的堆栈框架上的什么位置吗?

显然,hpux pa risc将argc存储在寄存器中,而不是内存中(当我进行p&argc时,gdb通知了我)。argc仅因hpux pa risc重新分配寄存器而更改,因为它未被使用。在linux上,argc存储在堆栈上。

我希望变量正好位于堆栈底部附近,但我没有看到它。在
main
的开头附近放置一个断点,调试器应该能够为您提供地址(一个好的调试器还可以让您查看内存位置)。如果您可以调试并且调试器有任何意义,则应在
argc
的地址上建立写入中断,堆栈转储应在程序启动时通知您。当所有其他操作都失败时
int*p=&argc
p
中的任何地址上设置弓bp。然后让它运行,当它被覆盖时,会立即告诉你。这就是我要找的:所以,我猜我找错了树。argc仅因hpux pa risc重新分配寄存器而更改,因为它未被使用。在linux上,argc存储在堆栈上(我刚刚检查过)。