C++ 使用lldb打印带有换行符的字符串

C++ 使用lldb打印带有换行符的字符串,c++,lldb,C++,Lldb,我想使用lldb打印一个字符串,可以是constchar*或std::string,这样就可以让人可读了。最重要的是,\n将作为换行符打印。有人知道怎么做吗?我尝试了在中为gdb提供的建议,但是它似乎对lldb不起作用 编辑:我知道您可以发出print myString命令来打印字符串,但是它不会格式化换行符(至少在默认情况下不会):大多数时候您希望看到字符串的文字内容,因此打印的默认lldb行为是正确的。但是,如果有一个格式选项,可以像标准库处理字符串一样“呈现”输出,这将非常有用。这就是gd

我想使用lldb打印一个字符串,可以是
constchar*
std::string
,这样就可以让人可读了。最重要的是,
\n
将作为换行符打印。有人知道怎么做吗?我尝试了在中为gdb提供的建议,但是它似乎对lldb不起作用


编辑:我知道您可以发出
print myString
命令来打印字符串,但是它不会格式化换行符(至少在默认情况下不会):

大多数时候您希望看到字符串的文字内容,因此打印的默认lldb行为是正确的。但是,如果有一个格式选项,可以像标准库处理字符串一样“呈现”输出,这将非常有用。这就是gdb“printf”命令的基本含义。请向lldb.llvm.org bug reporter提交一个bug请求

与gdb一样,您可以使用标准库为您呈现文本:

(lldb)  expr (void) printf("Some text\nMore text\nEven more text\n")
Some text
More text
Even more text
(lldb)
在本例中,我将其转换为void,因为我不关心返回值,这使文本更难查看


正如你在文章中提到的,如果你的输出没有到达某个终端,那是没有帮助的,所以一些明确的“渲染输出”选项也是一个好主意。但是,只有在调试器中附加程序而不是运行程序时,才会发生这种情况。

页面上出现的信息是什么错误,这是谷歌搜索“代码> LLDB C++打印字符串< /代码>的第一个结果。是否因为“可打印字符”/“C”格式设置程序没有展开换行符?为什么您认为LLDB能够做的事情比这个非常广泛的文档页面上的详细内容还要多?广泛的文档?LLDB的文档页面是我遇到的最难理解的事情之一。我几乎从来没有找到我要找的东西。是的,
lldb print
命令不打印格式化字符串。我编辑了我的帖子来说明这一点。我所指的页面似乎足够清晰和广泛。。。