2010-02-18 57 views
3

我在Python中有一些腳本來幫助我使用GDB進行調試,該功能使用函數gdb.parse_and_eval(仍有文檔)從傳遞給腳本命令的參數中獲取較低的值,現在該模塊似乎沒有任何跟蹤該功能。從GDB做python import gdb; print dir(gdb)清楚地表明這個功能缺失。gdb python scripting:哪裏有`parse_and_eval`走了?

我在射手分支寫劇本前一段時間的GDB 6.8,而現在大約如果它被棄用我無法找到任何信息或GDB 7

任何有關它的信息發生了什麼?

謝謝!

回答

4

我不知道它去了哪裏爲什麼,但Qt的實現了這個解決辦法在their code,這實際上可以是對你有用:

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) 
4

parse_and_eval被簽入的射手分支,但一直沒有7.0版本已被合併爲主線。它現已合併:

2009-12-03 Tom Tromey <[email protected]> 

     * python/python.c (gdbpy_parse_and_eval): New function. 
     (GdbMethods): Add "parse_and_eval". 

並將在即將發佈的7.1版本中提供。