V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liuguangxuan
V2EX  ›  C++

不懂就要问:阅读他人代码的时候,有什么工具可以画出函数或者类之间的层级调用关系?

  •  
  •   liuguangxuan · 2020 年 6 月 25 日 · 7357 次点击
    这是一个创建于 2033 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在阅读他人的项目代码时,都是徒手在 A4 纸上画出类或者函数之间的调用关系,来梳理出来逻辑。想请问一下各位老哥,有没有好用的工具可以使用?

    目前用的开发工具是 Clion,C++项目。

    如果各位老哥有更好的阅读项目代码的经验可以传授,感激不尽。

    19 条回复    2020-08-13 20:56:34 +08:00
    zyzhang
        1
    zyzhang  
       2020 年 6 月 25 日   ❤️ 3
    source insight
    hankai17
        2
    hankai17  
       2020 年 6 月 25 日   ❤️ 2
    source insight
    hejingyuan199
        3
    hejingyuan199  
       2020 年 6 月 25 日   ❤️ 1
    感谢楼上两位的推荐,太棒了。可是我一看价格 239 美元。这么贵?有便宜的办法吗?
    pezy
        4
    pezy  
       2020 年 6 月 25 日   ❤️ 2
    sourcetrail
    Hallujah
        5
    Hallujah  
       2020 年 6 月 25 日 via Android   ❤️ 3
    Mindjet
        6
    Mindjet  
       2020 年 6 月 25 日
    想到几点:
    1. 用 UML 建模,相关软件有很多
    2. IDEA 等 IDE 是有这个功能的,能够自动化绘图
    3. 纸其实也有很大优势,非常随意,做做草图比大多软件都好用,如果不喜欢纸张可以用数位板
    hejingyuan199
        7
    hejingyuan199  
       2020 年 6 月 25 日
    @Hallujah 哈哈。我买了个大白板,在写字台旁边。大白板超级爽的。
    liuguangxuan
        8
    liuguangxuan  
    OP
       2020 年 6 月 25 日
    @pezy #4 感谢大佬推荐。咋一看 ID 好熟悉,才发现当初是看着您的 GitHub 把《 C++ Primer 》刷了一遍。没想到在这儿能碰到。
    liuguangxuan
        9
    liuguangxuan  
    OP
       2020 年 6 月 25 日
    @Mindjet #6 感谢推荐
    Newyorkcity
        10
    Newyorkcity  
       2020 年 6 月 25 日
    @Mindjet idea 有这个功能?能具体说下吗?
    nightwitch
        11
    nightwitch  
       2020 年 6 月 25 日

    Sourcetrail
    nightwitch
        12
    nightwitch  
       2020 年 6 月 25 日
    续上楼,开源免费
    yanqiyu
        13
    yanqiyu  
       2020 年 6 月 26 日 via Android
    打个断点看调用栈也不失为一种通用方法...
    nuk
        14
    nuk  
       2020 年 6 月 26 日
    IDA,debug 可以直接记录指令流。。。
    12tall
        15
    12tall  
       2020 年 6 月 26 日
    IDEA?
    jakezh
        16
    jakezh  
       2020 年 6 月 26 日
    Sourcetrail +1
    XanderChen
        17
    XanderChen  
       2020 年 6 月 26 日
    或者你干脆开个思维导图,一边梳理一边做导图,
    imBossa
        18
    imBossa  
       2020 年 6 月 27 日
    @Mindjet idea 有这个功能?能具体说下吗?
    hardwork
        19
    hardwork  
       2020 年 8 月 13 日
    自动调用图表?没这么智能的 ide 吧,有很多运行时决定的调用关系根本没法静态全分析吧。
    看代码只要有全局搜功能,声明,实现跳转,find all reference 这些功能就够了,这个任何 ide,或编辑器像 vscode 加个插件就能实现了。
    其它的分析还是要靠理解,文档,业务逻辑和调试日志了。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2332 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 16:02 · PVG 00:02 · LAX 08:02 · JFK 11:02
    ♥ Do have faith in what you're doing.