iOS除錯奇巧淫技 二 之LLDB

2021-09-22 17:11:25 字數 1574 閱讀 1797

一篇我們介紹了ios除錯奇巧淫技(一),主要是幾種斷點的功能和執行時間測試,這次我們進一步學習乙個讓你用了之後愛不釋手的測試工具—-lldb

lldb是乙個開源的內置於xcode的除錯工具,可以安裝c++或者python外掛程式。與lldb相對應的是gdb,主要存在於基於unix平台的程式除錯工具。

在開發中我們經常要除錯**,用到最多的就是print和nslog輸出,這樣的做法在某些程度下並不太高效,lldb的引進在某些時候替代列印函式,提高測試效率。

比如:

help print

非常詳細的列印出help的具體引數用法

列印命令的用法也是不言而喻的,可以用來列印某個值

或者可以簡寫為 p (變數名稱)

當我們想改變乙個變數的值的時候用到了expression命令 簡化為 expr 、e

當然其實你也可以用print命令進行列印

通過上圖我們可以清晰的比較到 print和expression的區別是:print並沒有改變實際引數的值,模擬性的使變數稱為你所意願的值,而expression不同,是實實在在的改變了變數的值。

簡稱 continue 或者 c。

作用於上面第乙個按鈕一樣,取消程式的暫停,允許程式繼續執行下去

簡稱 next,或者n

作用以黑盒的方式執行一行**,如果遇到的是乙個函式,那麼會執行這個函式,而不是只跳進函式裡面的一行**

簡稱 step 或者s

當我們想跳進乙個函式裡面逐步除錯程式的時候可以用這個命令。如果當前行不是函式則,這個命令和5.thread step-over 命令作用一致。

當我們在乙個函式中,想跳出這個函式,則可以運用這個命令

執行這個命令將會告訴你當前行數和原始碼檔案,以及其他一些資訊

我們有時候除錯不想執行某個函式的**,可以借助這個命令在函式的開頭直接給這個函式的返回值,這樣函式以後的**就沒有機會,執行直接給了個人為的返回值 。這個命令太強大了,用時要慎重細心,偽裝者,絕對的偽裝者。

簡稱 br li

獲取專案中斷點的具體位置和資訊並列印

對某個具體斷點開啟或關閉

手動建立斷點

貪心的奇巧淫技 Join the Strings

題目大意 已知n個長度不同的字串,求字典序最小的方案.分析 直接貪心是不對的,因為按字典序排序的話會出現這種情況 bt,btb,此時直接貪心就成了btbtb,明顯btbbt更優.所以按 a b,b a 判斷就可以了 機智 code include include include include in...

位運算的奇巧淫技

1.在處理整形數值時,可以直接對組成整形數值的各個位進行操作。這意味著可以使用遮蔽技術獲得整數中的各個位。2.與 或 異或 非 取反 3.和 運算子將二進位制位進行右移或者左移操作。4.運算子將用0填充高位 運算子用符號位填充高位,沒有 運算子。5.對於int型,1 35與1 3是相同的,而左邊的運...

iOS開發的一些奇巧淫技3

ios開發的一些奇巧淫技1 2 cgfloat和float的區別?1 typedef cgfloat type cgfloat 這裡可以看到cgfloat是cgfloat type的巨集定義,那麼這個又是什麼?1 2 3 4 5 6 7 8 9 10 11 if defined lp64 lp64 ...