Как искать перегруженные методы в GDB с помощью интерфейса python?GDB Python разрешает перегруженный метод
У меня есть класс, который имеет несколько методов, называемых 'el', один из которых принимает два int
s. GDB останавливается в точке останова с переменной-членом, называемой _Dr
в области в нижнем процессе. Я делаю это, чтобы получить Python gdb.Value
объект, представляющий _Dr
:
(gdb) python _Dr = gdb.parse_and_eval('_Dr')
Теперь я хочу, чтобы получить el(int,int)
метод:
(gdb) python el = _Dr['el']
Traceback (most recent call last):
File "<string>", line 1, in <module>
gdb.error: cannot resolve overloaded method `el': no arguments supplied
Error while executing Python code.
Как сказать это типы аргументов для разрешения перегрузки?
Я попытался это:
(gdb) python el = _Dr['el(int,int)']
Traceback (most recent call last):
File "<string>", line 1, in <module>
gdb.error: There is no member or method named el(int,int).
Error while executing Python code.
и это:
(gdb) python el = _Dr['el', 'int', 'int']
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: Could not convert Python object: ('el', 'int', 'int').
Error while executing Python code.
и это:
(gdb) python el = _Dr['el(1,1)']
Traceback (most recent call last):
File "<string>", line 1, in <module>
gdb.error: There is no member or method named el(1,1).
Error while executing Python code.
Что такое правильный способ сделать это?
Да, хотя метод находится в базовом классе, поэтому, я думаю, мне также придется искать вниз по дереву наследования. – Tom