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

时间:2019-01-11 19:15:58

标签: 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):
        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

0 个答案:

没有答案