xcode中是否有辦法通過代碼設置斷點?
01-05
當我使用assert的時候,如果為false,應用直接崩潰掉。
如果我正在xcode中調試,堆棧會斷在最後一個執行語句,並且可以看到所有的變數值。但是點擊continue之後就會掛掉。能不能通過代碼設置斷點,這樣我寫一個宏,當條件為false並且正在調試中的時候,自動停在當前行,點擊continue之後就可以繼續執行
要不換個方法,sleep(+10s)然後趁機attach上去?
Xcode是可以直接設置條件斷點的,右鍵斷點edit breakpoint
#if (target iPhone simulate os)
%asm (int3)
#else%asm(arm 中斷指令,自己查)#endif弄個全局變數DEBUGPOINT
然後#define TEST(x) if((x)) {DEBUGPOINT=1;DEBUGPOINT=0;}
接著對debug point設置變數監視斷電當其=1或者被寫入時斷下。應該就可以了吧。Xcode啊 Clang/LLVM 提供了 __builtin_debugtrap()
或者這個跨平台的 wrapper https://github.com/scottt/debugbreak推薦閱讀:
※如何利用 Xcode 的 Developer Library 學習 Objective-C 與 Mac / iOS 開發?
※我用 ios masonry 進行對我的tableViewCell進行布局,發生了布局衝突?