c
文章平均质量分 81
zzmfish
这个作者很懒,什么都没留下…
展开
-
利用堆栈回溯、addr2line和Graphviz生成运行时函数调用图
现在的软件源代码动则千万行,初学者常常感到迷惘,如果能自动生成关键函数的调用关系图,则思路可以清晰许多。如下面这幅图展示了WebKit网页渲染的部分函数执行过程,比单纯地看代码直观多了。 代码下载点这里,包括三个文件backtrace.h、backtrace.c和callgraph.py。 1. 堆栈回溯 比如要分析libwebcore.so里面的函数调用,首先要知道这个库文件在原创 2012-08-06 16:38:09 · 3563 阅读 · 2 评论 -
ELF动态库加载技术
库用于将相似函数打包在一个单元中。Linux支持两种类型的库:静态库(在编译时静态绑定到程序)和动态库(在运行时绑定到程序)。Linux系统使用的动态库是ELF格式,后缀名为so。 1 加载 动态库内部划分为段,段分为不同的类型: PT_LOAD段:包含代码或数据,是需要被映射到内存中的,每个段有不同的访问权限(读、些、执行); PT_DYNAMIC段:包含动态链接信息,如符原创 2012-12-31 12:14:36 · 2052 阅读 · 0 评论