Python 如何将gdb便利变量设置为命令的结果

Python 如何将gdb便利变量设置为命令的结果,python,gdb,Python,Gdb,我在Python中使用了用户定义的gdb命令,这些命令大致如下: #!/usr/bin/env python import gdb class ConcatenateStrings(gdb.Command): def __init__(self): super(ConcatenateStrings, self).__init__("strcat", gdb.COMMAND_DATA) def invoke(self, arg, from_tty):

我在Python中使用了用户定义的gdb命令,这些命令大致如下:

#!/usr/bin/env python
import gdb

class ConcatenateStrings(gdb.Command):
    def __init__(self):
        super(ConcatenateStrings, self).__init__("strcat", gdb.COMMAND_DATA)

    def invoke(self, arg, from_tty):
        args = arg.split(' ')

        var = args[0]
        result = args[1] + args[2]

        gdb.execute('set ${0} = "{1}"'.format(var, result))

ConcatenateStrings()
(为了简单起见,安全检查等被移除)

他们希望有一个参数指定结果应分配给的变量,例如:

(gdb) source strcat.py
(gdb) strcat result a b
(gdb) print $result
ab
这是可行的,但我很好奇是否可以直接将gdb命令的结果分配给方便变量

基本上,有没有办法做到这一点

(gdb) source strcat.py
(gdb) set $result = $(strcat a b)
(gdb) print $result
ab