簡體   English   中英

LLDB C ++調試

[英]LLDB C++ debugging

我是LLDB的新手,我在我的代碼中處理各種std::vector ,但是當我嘗試打印向量的值或用expr '(int)myVector[0]'查詢向量的大小時expr '(int)myVector[0]'expr '(int)myVector.size()'調試器打印的值與我在向量中知道的值無關。

當我正在學習使用命令行和LLDB進行調試時,我確定我在這里遺漏了一些東西,有人能發現我的錯誤或給出一些建議嗎?

編輯忘了說我在OS X Mavericks下安裝了最新的命令行工具。

我自己找到了答案。 顯然,像[]這樣的重載運算符是不允許的,因為它們是內聯的, 請參閱此問題以獲得更好的解釋。

而且,我不知道為什么我把單引號用於我想要評估的語句(我很確定我在其他地方看到它......它們在LLDB中實際意味着什么?)就像這樣expr'printf expr 'printf("Hey")'

因此,在引用的問題中取出引號並使用答案就足夠了

expr (int) myVector.__begin_[0]

獲取向量中位置的單個值。

使用p myVectorpo myVector 這些將以幾種不同的格式打印出矢量的內容(以及大小)。

要從向量中打印單個值,可以使用類似p (int)myVector[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM