我在 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()
Run Code Online (Sandbox Code Playgroud)
(为了简单起见,删除了安全检查等)
他们期望有一个参数来指定结果应该分配给哪个变量,如下所示:
(gdb) source strcat.py
(gdb) strcat result a b
(gdb) print $result
ab
Run Code Online (Sandbox Code Playgroud)
这可行,但我很好奇是否可以将 gdb 命令的结果直接分配给便利变量。
基本上,有办法做到这一点吗?
(gdb) source strcat.py
(gdb) set $result = $(strcat a b)
(gdb) print $result
ab
Run Code Online (Sandbox Code Playgroud)