前言

在研究开源代码时,大家或许都有这样的感慨:

(1)代码太庞大,少则几万行代码,多则几百万行代码,不知道如何入手

(2)相关的帮助文档有限,很难短时间内理清头绪

(3)有了代码在手,但代码之间的调用相当复杂,一层一层追踪总是理不清调用逻辑顺序。

1、从SAMBA源码说起

笔者在研究kerberos认证时,需要开源的samba软件。如下是samba的官网:http://www.samba.org/

image.png

Samba最新版本为4.1.10,统计得出其中.c及.cpp的文件有近4000个,累计代码近百万行。所以对其的全面分析有一定难度。当然,我们可以根据所需,缩小范围,从指定所需的指令对应的代码追溯代码调用逻辑。

2、给源码插入“调用逻辑线索”代码

即便如此,有时还是想直观看下某个模块的调用顺序,能不能直观的打印出来?而如何打印调用逻辑呢?如果每个函


收藏 打印