如何创建使用“表达式”计算其参数的 LLDB 别名

rag*_*eld 5 debugging alias command expression lldb

我正在尝试创建一个 LLDB ,aliasexpression使用. 我尝试了很多很多不同的语法组合,但似乎任何在 an 中使用的东西都无法解析。%1alias%1expression

(lldb) version
LLDB-112.1
Run Code Online (Sandbox Code Playgroud)

这按预期工作:

(lldb) expr (char*) strdup(argv[1])
(char *) $23 = 0x000000010061c090 "--calc"
Run Code Online (Sandbox Code Playgroud)

当我创建一个alias包含%1示例时失败。

(lldb) command alias dup expr (char*) strdup(%1)
(lldb) dup argv[1]
error: expected expression
error: 1 errors parsing expression
Run Code Online (Sandbox Code Playgroud)

如何创建一个 LLDB 别名来使用 评估其参数expression

Vla*_*rov 3

要使表达式中的参数起作用,请使用命令正则表达式而不是别名,如下所示:

command regex dup 's/(.+)/expr (char*) strdup(%1)/'
Run Code Online (Sandbox Code Playgroud)

欲了解更多详情,请参阅此答案