前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

利用GDB生成C程序的函数调用图 | 八卦炉 八卦炉 站内搜索 主菜单 跳至内容 首页 gdb vim bash wordpress drupal C/C++ 代码阅读 g++ opengl 化工 常用网址 搜索: C/C++、gdb、Linux、perl 利用GDB生成C程序的函数调用图 2014 年 03 月 07 日 admin 发表回复 (阅读 6 次) 利用gdb,在关心的函数上设置断点,然后打印调用堆栈,然后分析gdb的logfile,得出函数调用关系,再利用dot可以生成函数调用图。 之所以这样做,是因为全部函数的调用关系太复杂,太大,分文件来做函数调用图是一个可行的事情。 用perl写了一个工具,可以列出给定obj中的函数调用图,最终生成一个jpg文件。代码在这里 将文件的.txt去掉,就是直接可以使用的pl文件了。另外关于dot的文档在这里. 下面是一个例子: c 代码 #include <stack> #include <stdio.h> using namespace std; int arr[] = {1 , 2 , 3, 4, 9 , 5 , 7 } ; int size=sizeof(arr)/sizeof(int) ; int stack_test() { stack<int>? myInt; for(int i = 0 ; i < size ; i ++ ) { myInt.push(arr[i]); } while(myInt.size() > 0){ printf(&#8220;%d\n&#8221;,myInt.top()) ; myInt.pop(); } } void stack_test2() { return ; } int main(int argc, char** argv) { stack_test(); stack_test2(); return 0 ; } 编译方法: g++? -g -c stack.cpp -o stack.o g++ -g stack.cpp -o stack 另外: option_file的内容为 r 生成函数调用图的命令行为: ./genCallInfo.pl -obj ./stack.o -bin ./stack -option_file ./options_file 生成的调用图为: 注意,这里的示例为演示用,实际上,文件要比这个大得多。因此实际使用时, obj文件通常只是bin文件的一小部分,而不是像这个例子这样。通常的命令行为: ./genCallInfo.pl? -obj? ./stack.o? -bin ./bigprojBinary -option_file ./options_file 本文地址: http://www.bagualu.net/wordpress/?p=3270 转载请注明 文章导航 上一文章关于编程的效率问题 发表评论 取消回复 电子邮件地址不会被公开。 必填项已用*标注 姓名 * 电子邮件 * 站点 评论 您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> 文章点击排行 WordPress代码之apply_filters( 51 )美食DIY--自制红豆豆沙( 45 )如何识别C++编译以后的函数名(demangle)( 39 )微博分享按钮( 37 )WordPress版权声明插件( 31 )ubuntu无法启动( 30 )CPU乘法速度测试( 27 )上海变电站( 27 )php匹配汉字的问题( 25 )OpenGL 帧缓冲区(第10章)( 24 )Wordpress中添加自定义参数( 23 )GDB 找不到源代码( 23 )vim 获取当前文件名( 23 )健康饮食--芹菜胡萝卜汁( 22 )视频编解码的基本概念( 22 )OpenGL 纹理贴图( 22 )再说Wordpress中添加小挂件widget( 22 )OpenGL 光照 抗锯齿 雾 多边形偏移( 21 )drupal源码阅读方法( 20 )vim 多文件搜索并实现自动跳转( 20 ) --!> 广告 标签Action bash codec ctags DCT debug drupal extension Filter firefox ftp GOOGLE i18n Javascript linux perl php SEO theme ubuntu vim widget windows wordpress 八卦 国外网站介绍 图片搜索 婴儿 安装 实例 批处理 插件 插件开发 数据库 正则表达式 浏览器 源码分析 烤箱 特殊字符 番茄酱 编解码 美食DIY 视频 论坛 豆沙 推荐文章 bash快速参考 gdb batch mode for callgraph GDB, 有用的GDB命令,用于代码分析 perl中使用pipe(管道) vim 多文件搜索并实现自动跳转 vim 获取当前文件名目录名 vim 表达式替换 WordPress代码之apply_filters WordPress版权声明插件 健康饮食–芹菜胡萝卜汁 在地址栏运行javascript 所有分类 C/C++ (53) CSS (4) CUDA (4) drupal (19) gdb (12) javascript (6) Linux (64) lisp (2) perl (10) php (4) vi (18) windows (17) wordpress (33) 中文处理 (10) 化工 (45) 反编译 (4) 图形 (23) 应用开发 (25) 数码电子 (8) 旅游地理 (4) 未分类 (5) 杂谈杂感 (12) 海量数据处理 (7) 照片 (2) 生化 (2) 生活 (19) 电力 (1) 算法 (1) 经济 (2) 网站动态 (13) 网络 (2) 美食 (21) 考古 (1) 股票 (28) 视频 (9) 设计 (2) 语言参考 (3) 逗号的美好生活 (3) 金属 (1) 功能 注册 登录 文章RSS 评论RSS WordPress.org 近期评论admin发表在《在地址栏运行javascript》hhah发表在《在地址栏运行javascript》admin发表在《OpenGL编程指南和OpenGL超级宝典》ysh发表在《美食DIY&#8211;油条》ysh发表在《科莫湖》文章归档 2014年三月 (7) 2014年二月 (13) 2014年一月 (10) 2013年十二月 (12) 2013年十一月 (12) 2013年十月 (4) 2013年九月 (4) 2013年八月 (21) 2013年七月 (16) 2013年六月 (1) 2013年五月 (6) 2013年四月 (24) 2013年三月 (10) 2013年二月 (1) 2013年一月 (7) 2012年十二月 (10) 2012年十一月 (20) 2012年十月 (7) 2012年九月 (12) 2012年八月 (22) 2012年七月 (46) 2012年六月 (20) 2012年五月 (5) 2012年四月 (9) 2012年三月 (3) 2012年二月 (8) 2012年一月 (8) 2011年十二月 (5) 2011年十一月 (4) 2011年七月 (3) 2011年六月 (30) 2011年五月 (39) 2011年四月 (24) 2011年三月 (1) 自豪地采用WordPress