Сценарии 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.

Другие вопросы по тегам