在Xcode中的特定行上显示运行时错误消息

时间:2013-11-01 17:52:26

标签: c++ xcode macos assert

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

我想显示内联邮件,就像SenTestingKit那样:

SenTestingKit

现在我唯一可以做的就是使用__builtin_trap停在正确的行。但是没有显示自定义错误消息。

__builtin_trap

1 个答案:

答案 0 :(得分:0)

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

在任何情况下,都应该用一个宏来禁用调试版本中的断言以及定义如何导致断点的宏。