腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
4
回答
(准确地说)调用堆栈在哪里?
、
、
、
、
如何在运行时(通过某种符号或
寄存器
)找到调用堆栈的地址界限?我用nm和readelf来挑选我的符号,但我找不到。在
寄存器
的情况下,我似乎仅限于当前
帧
的基本
指针
和堆栈
指针
,而不是起始地址。我在
Linux
x86/x86_64上使用
Linux
x86/x86_64。 编辑:我可以使用x86段
寄存器
SS来计算它吗?
浏览 7
提问于2012-02-13
得票数 2
回答已采纳
1
回答
在
Linux
上访问x86-64体系结构上的堆栈
帧
、
、
、
我试图访问具有x86-64体系结构的
Linux
系统上的不同堆栈
帧
。我能够访问所有
帧
的
寄存器
基本
指针
(rbp)。现在,我想访问每个函数调用的参数。我检查了这个,它说前6个参数是通过
寄存器
传递的。然而,据我所知,我只能通过读取
寄存器
得到最高级函数调用的参数。但是,发送给其他函数(即当前
帧
下面的堆栈
帧
)的参数又如何呢?想必,它们必须存储在堆栈本身的某个位置,但我无法获得位置。
浏览 4
提问于2014-09-13
得票数 1
回答已采纳
1
回答
从LKM读取ARM CPU
寄存器
、
、
我想从
linux
内核模块读取链接
寄存器
或
帧
指针
中
存储的值,但我不确定要使用的语法。作为背景,我编译了Android goldfish 3.4内核,并使用insmod将我的模块加载到内核
中
。
浏览 1
提问于2016-06-03
得票数 0
3
回答
使用dwarf2展开堆栈时获取堆栈
指针
的值
、
在DWARF2调试格式
中
,借助.debug_frame部分中提供的CFI(调用
帧
信息)支持堆栈展开。这正是一个为每个
寄存器
保存一条规则的表,用于获取前一
帧
中
的值。然而,所有这些规则都依赖于这样一个事实,即
寄存器
保存在堆栈
中
的某个位置。当没有
帧
指针
时,在前一
帧
寄存器
中
获取堆栈
指针
的值不是真的。在这种情况下,堆栈
指针
可能不会保存在堆栈上,而只是通过递
浏览 0
提问于2011-02-18
得票数 3
回答已采纳
2
回答
试着理解gcc的选项-fomit框架
指针
、
、
、
、
-fomit-frame-pointer在这种情况下,不需要将
帧
指针
保存在
寄存器
中
的函
浏览 4
提问于2013-02-02
得票数 99
回答已采纳
1
回答
为什么在ARM过程调用标准中使用
帧
指针
寄存器
是过时的?
、
、
、
、
我正在读ARM程序调用标准: 谁能告诉我原因吗?我认为,如果编译时堆栈
帧
大小未知,则需要
帧
指针
。
浏览 0
提问于2012-09-15
得票数 1
2
回答
崩溃报告
中
的CPU
寄存器
地址在分析中有何用处?
、
、
、
这是一个一般性的问题,我想知道我们如何在崩溃分析中使用这些处理器
寄存器
值?他们如何帮助你调查你的坠机事件?我唯一想到的是,如果有任何
寄存器
有空
指针
,比如下面的rcx,这让你对代码
中
可能的空
指针
解引用有一个概念,这是正确的假设吗?
浏览 1
提问于2016-09-30
得票数 3
1
回答
如何让框架
指针
gcc选项使调试变得不可能?
GCC在线医生- 断言-fomit-框架-
指针
gcc选项可以使破除不可能. 对于不需要的函数,不要将
帧
指针
保存在
寄存器
中
。这避免了保存、设置和恢复
帧
指针
的指令;它还使许多函数中都有额外的
寄存器
可用。也使得在某些机器上无法进行调试--。 我理解为什么局部变量很难定位,没有框架
指针
来帮助重建跟踪要困难得多。
浏览 0
提问于2018-05-31
得票数 2
1
回答
在交叉编译导致展开回溯失败时添加-O2选项
、
、
、
交叉编译时添加-funwind-tables,可以通过libgcc库
中
的接口(_Unwind_Backtrace and _Unwind_VRS_Get)成功解开回溯。
浏览 6
提问于2019-12-26
得票数 0
1
回答
理解x86-64函数前导时遇到问题
、
、
、
我正在经历一次崩溃,在调查过程
中
,我发现自己完全被以下代码阻塞:a00: 55sub $0x648,%rsp这是通过在64位
Linux
它似乎正在将rdx
寄存器
的值写入堆栈
中
的某个地方(很远很远),在函数接触到该
寄存器
之前。对我来说,这没有任何意义。
浏览 0
提问于2010-09-23
得票数 8
回答已采纳
1
回答
gcc m68hc11 (hc12)端口
帧
指针
管理
、
根据端口的源代码,它应该是一个硬
寄存器
。在hc11 /hc12上只有5个硬
寄存器
: D、X、Y、SP和PC。那么汇编程序对虚拟
帧
指针
寄存器
做了什么呢?编辑: 我已经找到了我问题的答案。m68hc11端口通过向预定义的内存位置分配符号
寄存器
名来模拟一些硬
寄存器
(包括
浏览 0
提问于2012-02-24
得票数 1
2
回答
在汇编语言中使用堆栈
指针
的查询
、
、
我准备好在维基百科上发表一篇关于尾递归的文章: 现在,在本文的末尾,示例显示了Stack
指针
用于访问在汇编伪代码
中
传递给函数调用的参数。这不是错的吗?我的意思是被调用者通过使用
帧
指针
而不是堆栈
指针
来访问参数?
浏览 0
提问于2010-03-02
得票数 4
回答已采纳
1
回答
AVR XYZ登记簿
、
、
、
AVR微控制器
中
X、Y和Z
寄存器
的区别是什么?在C编译器
中
,它们
中
的每一个适合做什么?编译器在哪里存储堆
指针
、堆栈
指针
、
帧
指针
?此
寄存器
是否具有相同的功能或在不同的空间(例如)提供寻址。
浏览 0
提问于2018-02-06
得票数 2
回答已采纳
1
回答
ARM:链接
寄存器
和
帧
指针
、
我想了解一下ARM
中
的链接
寄存器
和
帧
指针
是如何工作的。我去过几个网站,我想确认一下我的理解。int foo(void) // ..链路
寄存器
是否包含点(A)处代码的地址,
帧
指针
是否包含点(B)处代码处的地址?在声明了所有的局部变量之后,堆栈
指针
可以是bar()
中
的任何地方?
浏览 1
提问于2013-04-02
得票数 36
回答已采纳
1
回答
解释force_align_arg_pointer函数属性
、
、
、
、
替代序言和结尾比常规序言要慢和大,而备用序言需要scratch register;如果与regparm attribute一起使用,则可以减少可用
寄存器
的数量。
浏览 3
提问于2012-12-12
得票数 3
回答已采纳
3
回答
程序启动时(asm,
linux
)的默认
寄存器
状态是什么?
、
、
、
、
当程序启动(
Linux
可执行文件)时,eax、ebx等
中
是否有零,或者有什么? (我不进行任何调用,也不使用外部库)。在我的机器上,
寄存器
是零的,但是在编写asm程序时,我能在新的进程
中
依赖这样的行为吗?
浏览 5
提问于2012-02-05
得票数 22
回答已采纳
2
回答
OCaml呼叫惯例:这是一个准确的总结吗?
寄存器
分配(来自/asmcomp/amd64/proc.ml) 对于调用C函数,使用了标准的
浏览 3
提问于2012-07-04
得票数 22
1
回答
如果变量值存储在LIFO结构
中
,堆栈如何保存它们?
、
、
我对编译器如何在堆栈
中
存储变量感到有点困惑。我读到c++可以在堆栈上存储局部变量,但是如果堆栈是LIFO,它如何确保在程序
中
调用变量时调用正确的变量?
浏览 1
提问于2020-02-11
得票数 1
回答已采纳
3
回答
当一个函数被调用时,堆栈上有什么?
、
、
、
、
我只能想象1)参数;2)局部变量;1)函数返回地址? 2)函数名?
浏览 1
提问于2011-04-08
得票数 2
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
探秘“栈”之旅
函数调用时栈是如何变化的?
Linux C语言思考题4道
巅峰造极的编程语言登场,编程界的元始天尊!连C语言都恭敬不已!
一文读懂Go函数调用
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券