xcode中是否有辦法通過代碼設置斷點?

當我使用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進行布局,發生了布局衝突?

TAG:Xcode | C | CC | 軟體調試 |