Как найти перегруженные методы в GDB с помощью интерфейса Python?
У меня есть класс, в котором есть несколько методов с именем «el», один из которых принимает два int
. 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.
Как правильно это сделать?