2013-11-01 93 views
6

我想在運行時在C/C++代碼中的Xcode中顯示自定義錯誤消息。這可以用於自定義assert()函數。在Xcode的特定行上顯示運行時錯誤消息

我想顯示信息的內聯,就像SenTestingKit作用:

SenTestingKit

現在我能做的唯一的事情就是用__builtin_trap停在正確的路線。但是沒有顯示自定義錯誤消息。

__builtin_trap

+0

你的問題不清楚。嘗試提供更多信息或示例。 –

+0

@AdamBurry我更新了我的問題。 – Wojtek

+0

永久消息會好嗎?如果是這樣,請使用#pragma消息(您的消息來自assert),並在該行上引用SIGTRAP或使用__builtin_trap。 – xryl669

回答

0

我不熟悉和Xcode但這裏是它是如何做幾乎其他任何地方。 您的自定義斷言看起來就像這樣:

#define MY_ASSERT(a1, a2, desc, ...) {\ 
    PrintAssertMessage(...);   \ 
    DebugBreak();     \ 
} 

在窗戶有已經在WIN32 API將DebugBreak功能。 在Linux和運行IA32/X64的大多數其他系統中,您可以簡單地調用作爲斷點陷阱的int 3。

asm ("int 3"); 

,我讀了在Xcode是:

__asm {int 3} 

__asm__("int $3") 

__asm__("trap") 

在任何情況下,本應通過禁用宏包圍宏在調試版本中斷言在定義如何導致一個斷點。

+0

甚至有即用功能('__builtin_trap'),其功能類似於跨平臺陷阱。當然,您可以添加消息框或控制檯輸出。但是這*不回答原始問題,那就是如何在Xcode中內聯顯示這條消息。 –

相關問題