通过内嵌汇编怎么取得调用函数的代码的地址
arm中想要读lr寄存器来取得调用函数的代码的地址, 不知道对不对, 代码如下,
u32 ret = 0; __asm__ __volatile__ ( "mov lr, %0" :"=r" (ret) :); printk("<2> %s lr =%x\n", __func__, ret); |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不懂arm。不过在gcc中你可以用这个方式:
printf("caller at %p\n", __builtin_return_address(0));
__builtin_return_address(0) 每个体系统不同
MIPS下是读取RA寄存器的值
要想检验,那么编译成汇编码再看