簡體   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