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

Woj*_*tek 6 c++ macos xcode assert

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

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

SenTestingKit

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

__builtin_trap

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)

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