2013-02-25 22 views
11

我正在解開意大利麪代碼,並將其作爲一項練習,正在通過應用程序從其啓動中穿過,並突破applicationDidFinishLaunching並逐步進入。如何在Xcode 4.6中打破所有符號化代碼?

當這第一個方法返回我然後闖入程序集。知道什麼時候跨過,什麼時候進入是一個真正的痛苦。我希望調試器暫停所有符號化代碼(即我可以在Xcode中看到的代碼 - 也許這被稱爲「用戶」代碼?基本上,非框架/庫代碼),但我不在乎Apple的內部方法。

我正在尋找在我(或我的前任)編寫的每種方法和函數的第一行(或每行)上設置斷點的實用等價物。

是否有一些LLDB伏都教會這樣做?

回答

7

有您所有的模塊設置斷點的簡單方法的功能,不包括任何其他的共享庫(蘋果框架)的,假設你的產品/模塊被稱爲‘MyApp的’,這將是:

breakpoint set -s MyApp -r . 

但是,這包括任何您已靜態鏈接到的庫,這可能意味着您已引入的任何庫,因爲動態鏈接不允許在App Store中。

如果您傾向於爲您的類加上前綴,那麼您可以通過僅打破屬於具有該前綴的類的一部分的函數來縮小結果範圍。假設你的前綴是'MA',你可以這樣做:

breakpoint set -s MyApp -r ^[^A-Za-z]*MA 

它應該覆蓋你的大部分代碼。

+0

優秀的答案,謝謝你。爲了引用其他人,'-s'將斷點限制爲共享庫,'-r'表示正則表達式以匹配打破的功能。 – Swizzlr 2013-02-26 10:56:19

+0

如果有一種方法可以忽略綜合屬性訪問器,則主要獎勵點。 – Swizzlr 2013-02-26 11:09:44