Сценарии GDB Python: куда делся `parse_and_eval`? - PullRequest
3 голосов
/ 18 февраля 2010

У меня было несколько скриптов на Python, которые помогли мне отладить с помощью GDB, которая использовала функцию gdb.parse_and_eval (все еще задокументировано), чтобы получить худшие значения из аргументов, переданных в команду сценариев, и теперь модуль Похоже, нет никаких следов этой функции. Выполнение python import gdb; print dir(gdb) из GDB ясно показывает, что эта функция отсутствует.

Некоторое время назад я написал сценарии для GDB 6.8 в ветке archer , и теперь я не могу найти никакой информации о том, устарел ли он или что произошло в GDB 7.

Любая информация об этом?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 20 февраля 2010

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.

4 голосов
/ 18 февраля 2010

Я не знаю, куда и почему, но 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...