V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
seasona
V2EX  ›  问与答

请问这种函数调用树状图是怎么画的?

  •  1
     
  •   seasona · 2022-04-19 13:43:19 +08:00 · 1716 次点击
    这是一个创建于 736 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看代码的时候想自己把函数调用的逻辑绘制成图,方便理解,想知道下面这种数状图是怎么画的?

    #guest kick 时发送 virtio_net_handle_tx_bh is handle_output
    virtio_net_handle_tx_bh
      └─virtio_net_tx_bh
          ├─virtio_net_flush_tx
          |   ├─virtqueue_pop
          |   |   └─virtqueue_split_pop
          |   |       └─virtqueue_map_desc
          |   |           └─dma_memory_map
          |   |               └─address_space_map
          |   ├─qemu_sendv_packet_async
          |   |   └─qemu_net_queue_send_iov
          |   |       └─qemu_net_queue_deliver_iov
          |   |           └─qemu_deliver_packet_iov
          |   |               └─调用到了对端的 peer_receive 就是 tap_receive
          |   |                  └─tap_write_packet
          |   └─qemu_net_queue_flush
          |       └─qemu_net_queue_deliver
          └─bh 的回调函数 virtio_net_tx_complete
              ├─virtqueue_push
              |    ├─virtqueue_fill
              |    └─virtqueue_flush
              |        └─vring_used_idx_set
              └─virtio_notify
    

    不是想要那种自动生成的工具。函数调用的关系还是自己手动整理,只是想要这种生成代码树样式的工具

    10 条回复    2022-04-21 07:45:01 +08:00
    TimePPT
        1
    TimePPT  
       2022-04-19 13:49:39 +08:00
    你是指每行那个横杠竖杠?这不是制表符么?
    BiChengfei
        2
    BiChengfei  
       2022-04-19 13:54:24 +08:00
    说个笨点的,在系统下创建文件夹,然后用 tree 插件,打印目录结构
    sgiyy
        3
    sgiyy  
       2022-04-19 14:02:59 +08:00
    自己定义一份数据结构,写个方法处理添加空格、中华线、竖线。
    DarkCat123
        4
    DarkCat123  
       2022-04-19 14:13:41 +08:00   ❤️ 1
    https://plantuml.com/zh/salt
    参考「树形外挂」
    3dwelcome
        5
    3dwelcome  
       2022-04-19 14:17:12 +08:00   ❤️ 2
    我写过,加起来没几行代码。

    V2 贴代码会乱,我就贴图片了。

    seasona
        6
    seasona  
    OP
       2022-04-19 14:18:41 +08:00
    @TimePPT 就是指这个,想问一下有没有工具方便生成
    Pipecraft
        7
    Pipecraft  
       2022-04-19 15:51:12 +08:00   ❤️ 1
    seasona
        8
    seasona  
    OP
       2022-04-19 17:06:00 +08:00
    @Pipecraft 感谢!这个太方便了,就是我想要的东西
    Pipecraft
        9
    Pipecraft  
       2022-04-19 17:32:36 +08:00
    @seasona #8 我也是好奇找了一下,发现了这个好用的工具。
    JamesRuan
        10
    JamesRuan  
       2022-04-21 07:45:01 +08:00 via Android
    手撸一个也就一小时足够了吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5236 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:20 · PVG 17:20 · LAX 02:20 · JFK 05:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.