什麼是導致Xcode硬解的指令?例如在Visual Studio中,我可以執行'_asm int 3'或'DebugBreak()'。在一些GCC實現下,它是asm(「break 0」)或asm(「trap」)。Xcode相當於'__asm int 3/DebugBreak()/ Halt?
我試過Xcode下的各種組合,沒有任何運氣。 (內聯彙編工作正常,所以它不是一個語法問題)。
僅供參考,適用於斷言宏。我不想使用assert.h中的定義來實現可移植性,並且因爲它們似乎在XCode提供的版本中執行了abort()。
約翰 - 超級,歡呼聲。作爲參考,INT 3語法是英特爾Mac和iPhone所需的語法。
克里斯 - 感謝您的評論,但有很多原因,以避免移植到不同平臺的代碼庫標準的assert()函數。如果你遇到了自己斷言的麻煩,那通常是因爲你有更多的功能(記錄,堆棧展開,用戶交互),你希望保留這些功能。
您嘗試通過的實現更換投手的建議「__assert」或類似的不會是便攜的,標準的‘斷言’通常是一個宏,雖然它可以映射到__assert沒有關係的Mac上」 :T在其他平臺上
隨着GCC /鐺ASM語法,這成爲'__asm __( 「INT $ 3」)`英特爾Macs和(可能)`__asm __( 「陷阱」)`進行的iDevices。 – zneak 2012-10-28 22:01:50
上面的鏈接現在似乎已經死了。 – rstackhouse 2015-01-21 17:35:56