understand中几个重要的工具

understand作为一款源码阅读工具,有几个很棒的功能,对于函数的层级调用关系展示的很清晰。 
下面来进行详细的说明:

层级关系图:

如下代码示例:、

void root(void)
{
    //平台初始化
    Init_Flats();
    //创建系统任务
    ShowInitInfo("创建系统任务2...");
    CreateSysTask2();
    //加载主维护口
    ShowInitInfo( "加载维护端口..." );
    InitSysPort();
    //初始化负控系统
    ShowInitInfo("创建/扫描系统文件...");
    if(!bInSafe)
        InitFKSystem();
    if(bInSafe)
    {
        Trace("安全模式");
    }
    ExInitShowInitInfo();
    //退出ROOT任务
}

 butterfly:

显示调用和被调用关系,如果存在。选定的实体用红色标识,如图: 

Calls:

显示从此函数发出的整个呼叫链。 实体之间的每条线被读作“x调用y”。

这里写图片描述

可知,root函数中调用的如图所示的函数。

Called By:

显示谁直接调用了该函数。 

这里写图片描述

 Calls Relationship / Calledby Relationship:

显示两个函数之间的调用以及被调用关系。 
Calls Relationship: 
root 调用ShowInitInfo 

这里写图片描述

Calledby Relationship: 
ShowInitInfo 调用root: 

这里写图片描述

Control Flow

函数实体的流程图:不完美,但很清晰。

这里写图片描述

 

Declaration:

显示函数实体的结构,包括:函数名,函数返回值、函数实体被调用函数、函数实体调用了的函数;

这里写图片描述

 Declaration File

对选中函数的定义文件的描述,包括该文件包含的头文件、变量、文件包含的函数等

这里写图片描述

 

gdwLastSaveTime为文件定义的变量,

UML Sequence Diagram:

生成UML的时序图,具体的请另行查看,不做过多解释。

Cluster graphs:聚类图

包括:Cluster Call, Cluster Callby, Cluster Call Butterfly, Cluster Call Internal, and Cluster Control Flow等,与上述的其他图类似,但更全面,有大局观。这里不一一列举。

原文:https://blog.youkuaiyun.com/guozhongwei1/article/details/80282734 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值