携程做网站的流程,vps 网站攻击ip地址,app开发报价单模板,WordPress怎么改导航文字加小图标阅读本文前需要的基础知识 用 python 扩展 gdb python 绘制 graphviz
使用 GDB 画红黑树
前面几节中介绍了 gdb 的 python 扩展#xff0c;参考 用 python 扩展 gdb
并且 python 有 graphviz 模块#xff0c;那么可以用 gdb 调用 python#xff0c;在 python 中使用 grap…阅读本文前需要的基础知识 用 python 扩展 gdb python 绘制 graphviz
使用 GDB 画红黑树
前面几节中介绍了 gdb 的 python 扩展参考 用 python 扩展 gdb
并且 python 有 graphviz 模块那么可以用 gdb 调用 python在 python 中使用 graphviz 绘图。
思路
在红黑树插入的地方打 GDB 断点在断点处定义 command 命令并将红黑树的指针作为参数传递给 python。
在 python 中解析参数并构造 dot 语法并显示
代码示例
.gdbinit 文件
layout src
source script/algc-test-rbtree-gdb.py
b 15
b 24
b 34
b 43commands 1
print-rbt *tree-root
endcommands 2
print-rbt *tree-root
endcommands 3
print-rbt *tree-root
endcommands 4
print-rbt *tree-root
endpython 文件
import gdb
import osclass PrintRBT(gdb.Command):def __init__(self):super().__init__(print-rbt, gdb.COMMAND_USER)def invoke(self, arg, from_tty):root gdb.parse_and_eval(arg)............os.system(dot -Tsvg ./rbt.dot ./rbt.svg)os.system(dot -Tpng ./rbt.dot ./rbt.png)os.system(xdg-open ./rbt.svg)
PrintRBT()
效果展示