用__builtin_return_address获得程序运行栈情况【转】
2024-08-21 16:07:30
转自:http://blog.csdn.net/vpwork/article/details/7680102
%pF versatile_init+0x0/0x110
%pf versatile_init
版权声明:本文为博主原创文章,未经博主允许不得转载。
[cpp] view plain copy #include <stdio.h>
#include <stdlib.h>
#include <signal.h> #define MAX_LEVEL 4
void sigfunc(int signo)
{
printf("%s(0): %p\n", __func__, __builtin_return_address());
exit();
} int b()
{
printf("%s(0): %p\n", __func__, __builtin_return_address());
printf("%s(1): %p\n", __func__, __builtin_return_address());
while()
{
sleep();
}
} int a(int temp)
{
temp += ;
printf("%s(0): %p\n", __func__, __builtin_return_address()); b(); return temp;
} int main()
{
signal(SIGINT, sigfunc);
a(); return ;
} 执行后:
a(): 0x400675
b(): 0x400653
b(): 0x400675
^Csigfunc(): 0x30bda33140 用gdb调试:
gdb e
...
(gdb) l *0x400675
0x400675 is in main (e.c:).
int main()
{
signal(SIGINT, sigfunc);
a(); return ;
}
最新文章
- [LeetCode] Flatten 2D Vector 压平二维向量
- [转] SSH原理与运用(2):远程操作与端口转发
- window svn backup.bat
- Linux 学会这些基本可以啦
- android 搭建环境工具
- 删除ecshop云服务及授权关于官方等信息
- 工作中遇到的问题--Hibernate注解添加在一方和多方的区别
- awk学习
- Android中的音频处理------SoundPool,MediaRecorder,MediaPlayer以及RingStone总结
- HTML篇(下&#183;)
- Pytorch windows10安装教程
- Microsoft Deployment Toolkit build 8456
- Loadrunner学习资料
- 必会SQL练习题
- Java知多少(2)虚拟机(JVM)以及跨平台原理
- 为什么 PCB 生产时推荐出 Gerber 给工厂?
- 题解 P3628 【[APIO2010]特别行动队 】
- SOE 中调用第三方dll
- php果然是世界上最好的语言
- 堆数据结构(heapq)简单应用