我正在尝试使用 Python 来自定义我的 GDB 会话。我正在从 GDB 文档中复制代码,但它们没有正常工作,而是出现错误。令人困惑的。我是 Python 菜鸟,老实说,这个错误毫无意义,修复也没有意义。
class MyFrameDecorator(gdb.FrameDecorator):
# Blah, blah.
# TypeError: module() takes at most 2 arguments (3 given)
现在说什么?这个“2 个论点与 3 个论点”从何而来?我看到零参数。以下代码编译无怨言:
class MyFrameDecorator(gdb.FrameDecorator.FrameDecorator):
# Blah, blah.
为什么?我不明白。为什么重复类名可以修复类型错误?请注意,GDB 会自动将
import gdb
添加到所有 python 脚本,所以这不是问题(事实上,当代码编译时它没有 import gdb
)。
更新:
由于人们要求链接到 GDB 文档: https://sourceware.org/gdb/onlinedocs/gdb/Writing-a-Frame-Filter.html#Writing-a-Frame-Filter