Сценарии GDB Python: куда делся `parse_and_eval`?
У меня было несколько скриптов на Python, чтобы помочь мне отладить с GDB, который использовал функцию gdb.parse_and_eval
(все еще задокументировано), чтобы получить худшие значения из аргументов, передаваемых скриптовой команде, и теперь у модуля, похоже, нет следов этой функции. дела python import gdb; print dir(gdb)
Из ГБД четко видно, что эта функция отсутствует.
Некоторое время назад я написал сценарии для GDB 6.8 в ветке archer, и теперь я не могу найти никакой информации о том, устарел ли он или что произошло в GDB 7.
Любая информация об этом?
Спасибо!
2 ответа
Я не знаю, куда и почему, но Qt внедрил этот обходной путь в свой код, который может быть практически полезен для вас:
def parseAndEvaluate(exp):
if gdb.VERSION.startswith("6.8.50.2009"):
return gdb.parse_and_eval(exp)
# Work around non-existing gdb.parse_and_eval as in released 7.0
gdb.execute("set logging redirect on")
gdb.execute("set logging on")
gdb.execute("print %s" % exp)
gdb.execute("set logging off")
return gdb.history(0)
parse_and_eval
был отмечен в ветке Archer, но не был вовремя объединен с основной версией 7.0. Это было объединено сейчас:
2009-12-03 Tom Tromey <tromey@redhat.com>
* python/python.c (gdbpy_parse_and_eval): New function.
(GdbMethods): Add "parse_and_eval".
и будет доступен в следующем выпуске 7.1.