liuguangxuan
V2EX  ›  C++

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

  •  
  •   liuguangxuan · Jun 25, 2020 · 8134 views
    This topic created in 2322 days ago, the information mentioned may be changed or developed.

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

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

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

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

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