在lldb中尝试使用r
或run
命令时,出现如下错误:error: shell expansion failed (reason: invalid JSON). consider launching with 'process launch'.
当我只使用process launch
时它可以工作,但我真的不喜欢这样做。
有什么办法可以使别名或使Shell扩展不失败吗?
lldb进行shell扩展的方式是使用传递的命令参数运行一个名为InputStream inputStream = getClass().getClassLoader().getResourceAsStream("template.properties");
的小工具(在macOS上的Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources中)。 lldb-argdumper
将argv的内容包装为JSON,并将其写入stdout。然后,lldb将JSON解析回args,并在启动进程时将args一个接一个地插入argc / argv数组。
输出中的某些东西没有正确包装。您可以通过查看带有参数的lldb-argdumper
的输出来了解其含义。不管它是什么,它都是一个错误,因此,如果您可以重现它,请向您的示例提交http://bugs.llvm.org。
lldb-argdumper
将产生一个不进行外壳扩展的别名。您也可以将其放在〜/ .lldbinit中。