繁体   English   中英

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

[英]Print string with newlines with lldb

我想使用lldb打印一个字符串, const char*std::string ,这样它就是人类可读的。 最重要的是, \\n将被打印为换行符。 有谁知道如何做到这一点? 我在这篇文章中尝试了为gdb提供的建议,但它似乎不适用于lldb。

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

大多数情况下,您希望查看字符串的文字内容,因此打印的默认lldb行为是正确的。 但是,使用格式选项以与标准库执行字符串相同的方式“呈现”输出将是有用的。 这基本上就是gdb“printf”命令。 请向lldb.llvm.org错误记者提出错误请求。

就像使用gdb一样,您可以获得标准库来为您呈现文本:

(lldb)  expr (void) printf("Some text\nMore text\nEven more text\n")
Some text
More text
Even more text
(lldb)

在这种情况下我将它转换为void,因为我不关心返回值,这使得查看文本变得更加困难。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM