V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
liuguangxuan
V2EX  ›  C++

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

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

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

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

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

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

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