Edit: Я только что заметил, что вы спрашиваете, как сделать это с классом C ++, а не с Python.К сожалению.Я оставлю ответ в надежде, что он будет полезен любому, кто отлаживает расширение Python ...
Немного погуглив: "1004 * Код Python может манипулировать точками останова через gdb.Breakpoint
class. .
Мы можем найти все методы класса, подобные этому:
import inspect
class Foo(object):
bar = 1
def baz(self):
print "quoz"
inspect.getmembers(Foo, inspect.ismethod)
# [('baz', <unbound method Foo.baz>)]
Собираем его вместе:
def stop_hammertime(klass):
methods = inspect.getmembers(klass, inspect.ismethod)
method_names = [klass.__name__ + m[0] for m in methods]
return [gdb.Breakpoint(m) for m in method_names]
Примечание: этоне протестирован, так как у меня не установлен модуль gdb
.