标签存档: gdb
我第一次接触 gdb 命令 duel 是在大约 15 年前的某个旧 IRIX 系统上。我立刻就爱上了它在 MySQL 调试期间显示各种数据结构的便捷性,我希望 Linux 也有类似的东西。后来我发现 Duel 并非 IRIX 特有,而是 Michael Golan 在 93 年为 gdb 4.6 编写的一个公共领域补丁。不幸的是,它从未进入 gdb(我听说是因为许可原因)。现在 gdb 8 已经发布,这个补丁显然不适用了。我没有修复补丁,而是使用 gdb Python API 和 Arpeggio 解析器用 Python 重新实现了 Duel。...
任何看过 gdb 手册的人都知道 gdb 有某种 Python API。任何略读过的人都见过一个叫做“Pretty Printing”的东西,据说它告诉 gdb 如何以美观易读的方式打印复杂数据结构。好吧,至少我见过,但我从未多想。然而有一天,当我第一百次输入
(gdb) p/t table->read_set->bitmap[0] @ (table->read_set->n_bits+7)/8
时,我问自己,“为什么不呢?”,于是就开始了…
(更多…) …