6

我想在运行时在 Xcode 中以 C/C++ 代码显示自定义错误消息。例如,这可以用于自定义 assert() 函数。

我想内联显示消息,就像 SenTestingKit 一样:

SenTestingKit

现在我唯一能做的就是__builtin_trap在正确的线路上停下来。但没有显示自定义错误消息。

__builtin_trap

4

1 回答 1

-1

我对 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")

在任何情况下,这都应该被一个宏包围,该宏在调试构建中禁用断言以及定义如何导致断点的宏。

于 2013-11-22T12:50:58.553 回答