什么是导致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