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

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

  •  
  •   liuguangxuan · 85 天前 · 3308 次点击
    这是一个创建于 85 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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