gdb-python编程:如何编写代码,为C++;上课? 我希望能够在GDB中的C++类的每一个方法中设置断点。 我认为最简单的方法可能是python,因为现在python可以完全访问gdb。我对python知之甚少,加上gdb,这就更难了。我想知道有没有人知道如何编写一个类Python代码,它在GDB中给每个类的方法设置断点。 < P>编辑:我注意到你在问如何用C++类来完成这一点,而不是Python类。哎呀。我将留下答案,希望它对调试python扩展的任何人都有用
一些谷歌搜索结果: 我们可以找到这样一个类的所有方法:gdb-python编程:如何编写代码,为C++;上课? 我希望能够在GDB中的C++类的每一个方法中设置断点。 我认为最简单的方法可能是python,因为现在python可以完全访问gdb。我对python知之甚少,加上gdb,这就更难了。我想知道有没有人知道如何编写一个类Python代码,它在GDB中给每个类的方法设置断点。 < P>编辑:我注意到你在问如何用C++类来完成这一点,而不是Python类。哎呀。我将留下答案,希望它对调试python扩展的任何人都有用,c++,python,debugging,gdb,C++,Python,Debugging,Gdb,一些谷歌搜索结果: 我们可以找到这样一个类的所有方法: import inspect class Foo(object): bar = 1 def baz(self): print "quoz" inspect.getmembers(Foo, inspect.ismethod) # [('baz', <unbound method Foo.baz>)] 注意:这是未经测试的,因为我没有安装gdb模块。您可以生成一个.gdbrc文件(例如使用pyth
import inspect
class Foo(object):
bar = 1
def baz(self):
print "quoz"
inspect.getmembers(Foo, inspect.ismethod)
# [('baz', <unbound method Foo.baz>)]
注意:这是未经测试的,因为我没有安装gdb
模块。您可以生成一个.gdbrc文件(例如使用python),其中一行包含
'break C::foo'
对于类C的每个函数,然后启动gdb。假设您使用调试符号编译,您甚至不需要python:
rbreak source.cpp:.
谢谢,但是我真的很想有一个常规的程序,当我在gdb的时候可以正常工作,而不需要出去。由于tab completion将显示一个完整的符号列表,显然gdb有相关信息。哇,太好了,谢谢!我正在度假,没有办法检查这个,但我只是看了gdb文档,它就在那里!
rbreak source.cpp:.