• 阅读源码工具Sourcetrail


    基于Eclipse IDE

    1、Quick Type Hierarchy 快速查看类继承体系 ( 快捷键:Ctrl + T)
    在这里插入图片描述
    查看类很多人可能都知道,可源码阅读的时候更多用来查看方法体系更重要,可以方便快速的定位到方法的实现类。如:
    在这里插入图片描述
    此时如果想查看getBean()方法如何实现,可能会让你失望。结果如下
    在这里插入图片描述
    进入到了BeanFactory的接口定义方法,什么也没有。

    此时我们直接在getBean上 Ctrl+T :

    在这里插入图片描述
    可以看到其实现的子类,点击子类进去即可。此方法还适用于框架中非常常见的模板方法模式,在抽象类中定义的模板方法,用这招轻松找到实现类。

    当然还有详细的Open Type Hierarchy
    在这里插入图片描述
    会在左侧视图里面展示更好的Type View:
    在这里插入图片描述

    2、Open Call Hierachy 打开调用层级(快捷键:Ctrl+Alt+H)
    在这里插入图片描述
    掌握它,可以轻松游走于各种方法调用之间。
    Open Call Hierachy 查看结果如下,调用关系清晰明朗,可以直接定位到调用的地方
    在这里插入图片描述
    3、Debug 断点的灵活使用

    断点调式时,心中必须很清楚F5、F6、F7、F8的作用,不然要么迷失于源码之中,要么什么都没看清就走完了。

    重新啰嗦一下它们的作用:

    F5 Step Into,单步进入。进入到某个方法里面;

    F6 Step Over,单步结束。一行一行的执行代码,入门时很多人只会一行一行走;

    F7 Step Return,跳出方法。进入到某个方法里面时,如果发现这个方法没有你想看的东西,或者已经看到了你想看的,直接F7,跳出到方法外。

    F8 Resume,继续往下执行。往下执行,遇到下一个断点时再停下来,没有则一直运行完。

    调试时我们可能会经常遇到loadClass的情况:
    在这里插入图片描述
    在40行想进入ClassPathXmlApplicationContext构造方法,F5不料进入了类加载:
    在这里插入图片描述
    熟悉类加载的同学会很熟悉,不熟悉类加载机制的也不要慌,这是说明你调试的类第一次被加载,这时候我们F7跳出类加载,回到40行。
    在这里插入图片描述
    这个时候再按F5会真正进入ClassPathXmlApplicationContext构造方法。

    当我们断点跟踪Spring这种源码的时候,一定要有节奏,以优先找到整体脉络为准,不要一直的F5进入每一行细看,F5下去,几天都走不完Spring。能熟练在Spring这种框架中F5、F6、F7、F8,就离弄懂他不远了。

    Dubug的时候还应该注意debug视图的线程栈:
    在这里插入图片描述
    这个视图能够让你在走得比较深的时候,可以一眼看出自己怎么进来的,当前位于什么方法里等信息,还可以点击对应的代码行数进入查看。

    总结,这是我使用IDE跟踪源码的几个小技巧,尤其是第二点,是很实用的

    ========================================================

    收费工具Source Insight、Understand

    Sourcetrail开源工具

    一、下载安装

    在这里插入图片描述
    接下来就是download,在GitHub的release页面选择自己系统对应的发布版本下载安装:

    在这里插入图片描述

    安装好后,运行程序,会出现这样的界面:

    在这里插入图片描述

    二、应用

    选择“New Project”,在随后的界面中填写好项目名称和项目路径:
    在这里插入图片描述

    填好后点击下方的Add Source Group按钮,用以添加代码。
    ——在Sourcetrail中允许我们在同一个项目中添加多个来源的代码,甚至允许各个代码分组的语言互不相同,这些代码分组即为各个Source Group

    只需要查看一个代码库的内容,因此我们也只需要添加一个Source Group即可,如下图依次点击:
    在这里插入图片描述
    在继续输入新的信息前,打开你的命令行工具(Windows系统:Win+R,输入cmd然后回车;Linux下不赘述),输入where python(Windows)或which python3(Linux),即可看到当前环境的Python安装路径,记下这个路径,我们需要用它来解析Python代码。
    然后在新的界面中,需要填写Python环境的字段填入刚刚我们查到的Python所在目录(即去除最后一个斜杠及之后的内容)。

    其他的需要注意的就是“要建立索引的文件/目录”,这个字段就是添加我们真正要阅读的Python源码路径。字段左下角有一个“+”号,点击即可增加一个源码路径:
    点击右下角“Create”,再点击“Start”:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    结果解析:
    在这里插入图片描述
    可以看到,Sourcetrail将解析结果按“文件”、“模块”等大致分了类。
    我们点击最关心的“函数(Function)”来体验一下:
    在这里插入图片描述
    在左边,Sourcetrail为我们生成了形象的调用图;在右边,Sourcetrail列出了当前焦点函数的代码及其相应调用。

    无论在左边操作还是在右边操作,都会带来界面的同步变化。

  • 相关阅读:
    分支合并到b和b合并到a有区别吗
    利用python进行视频下载并界面播放快速下载素材
    接口测试CURL复制以及postman的Code功能
    Ajax使用流程
    tcpdump(一)基础理论知识
    前端(二十四)——轮询与 WebSocket的battle
    GCC编译过程
    neo4j查询两节点之间所有路径/关系
    408数据结构算法题目
    Java面试题总结(一)
  • 原文地址:https://blog.csdn.net/usa_washington/article/details/132780646