我想在运行时在 Xcode 中以 C/C++ 代码显示自定义错误消息。例如,这可以用于自定义 assert() 函数。
我想内联显示消息,就像 SenTestingKit 一样:
现在我唯一能做的就是__builtin_trap
在正确的线路上停下来。但没有显示自定义错误消息。
我对 xcode 不熟悉,但几乎在其他任何地方都是这样。您的自定义断言将如下所示:
#define MY_ASSERT(a1, a2, desc, ...) {\
PrintAssertMessage(...); \
DebugBreak(); \
}
在 windows 中,win32 API 中已经有一个 DebugBreak 函数。在 Linux 和大多数其他运行 IA32/X64 的系统中,您可以简单地调用 int 3,它是断点陷阱。
asm ("int 3");
我在xcode中读到它是:
__asm {int 3}
或者
__asm__("int $3")
或者
__asm__("trap")
在任何情况下,这都应该被一个宏包围,该宏在调试构建中禁用断言以及定义如何导致断点的宏。