看代码的时候想自己把函数调用的逻辑绘制成图,方便理解,想知道下面这种数状图是怎么画的?
#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
不是想要那种自动生成的工具。函数调用的关系还是自己手动整理,只是想要这种生成代码树样式的工具
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.