画程序函数框图心得

       最近一直在画程序中函数的框图,一开始以为很简单的,慢慢的才发现它的繁琐与复杂,极其考验人的毅力和耐心以及认真程度。

       首先找出主程序中用到的各个函数,然后按照调用顺序画出这些函数之间的关系框图。图1是VP8编码main函数中调用的函数。

    编码main函数调用的函数

                                       图1 vp8编码main函数调用函数框图

      接下来就是把图1中每一个函数调用的函数也全部找出来,并画出清晰的框架图,这样我们就能够清晰的看见程序的构架,更容易理解程序的执行过程。

      开始找函数的时候,以为自己看程序找就行,于是就设置断点,单步运行,查看程序运行到哪个函数,但是这样做了一段时间发现,速度很慢,而且有些条件不满足时会落掉一些函数。是不是有比较简单的方法呢?问过了好多人后,终于知道有一款软件——soure Insight,就带有抽取函数的功能。

      于是安装soure Insight,然后执行project ——new project——把自己的程序添加到新建的工程中——选择要分析的函数——点击工具栏上面的Relation Window图标,就可以显示出当前函数调用的所有函数。

      如图2查找函数关系图:

     

                                                                  图2查找函数关系图

    在看程序的时候还遇到一个问题,在vs2005里面竟然没法看到成对的{} ,由于程序比较庞大,所以很难找到结束的}。  开始的时候也是按部就班的看程序,一句一句的找,但是这样很容易找错 ,因为}太多了,很难找到匹配的。最后在朋友的帮忙下,知道有款软件看程序特别方便,在这个软件中成对的{}都有标记的。    这个软件就是UltraEdit,给大家推荐一下。

    以上两款软件,都是相当不错的读程序软件。

       

原文地址:https://www.cnblogs.com/greenteaone/p/1804778.html