egu*_*gur -1
我不熟悉 xcode,但几乎在其他地方都是这样做的。您的自定义断言将如下所示:
#define MY_ASSERT(a1, a2, desc, ...) {\
PrintAssertMessage(...); \
DebugBreak(); \
}
Run Code Online (Sandbox Code Playgroud)
在Windows中,win32 API中已经有一个DebugBreak函数。在 Linux 和大多数其他运行 IA32/X64 的系统中,您可以简单地调用 int 3,这是断点陷阱。
asm ("int 3");
Run Code Online (Sandbox Code Playgroud)
我在 xcode 中读到它是:
__asm {int 3}
Run Code Online (Sandbox Code Playgroud)
或者
__asm__("int $3")
Run Code Online (Sandbox Code Playgroud)
或者
__asm__("trap")
Run Code Online (Sandbox Code Playgroud)
在任何情况下,这应该被一个宏包围,该宏在调试版本中禁用断言,以及定义如何导致断点的宏。
| 归档时间: |
|
| 查看次数: |
508 次 |
| 最近记录: |