2019-08-23 11:56:54 -07:00
|
|
|
namespace System.Diagnostics
|
|
|
|
{
|
|
|
|
class Debug
|
|
|
|
{
|
|
|
|
#if !DEBUG
|
|
|
|
[SkipCall]
|
|
|
|
#endif
|
|
|
|
public static void Assert(bool condition)
|
|
|
|
{
|
|
|
|
if (!condition)
|
|
|
|
Internal.FatalError("Assert failed", 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
#if !DEBUG
|
|
|
|
[SkipCall]
|
|
|
|
#endif
|
|
|
|
public static void Assert(bool condition, String error)
|
|
|
|
{
|
|
|
|
if (!condition)
|
|
|
|
Internal.FatalError(error, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
#if !DEBUG
|
|
|
|
[SkipCall]
|
|
|
|
#endif
|
|
|
|
public static void FatalError(String msg = "Fatal error encountered")
|
|
|
|
{
|
|
|
|
Internal.FatalError(msg, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
#if !DEBUG
|
|
|
|
[SkipCall]
|
|
|
|
#endif
|
|
|
|
public static void AssertNotStack(Object obj)
|
|
|
|
{
|
|
|
|
#if BF_ENABLE_OBJECT_DEBUG_FLAGS
|
2020-03-09 06:34:16 -07:00
|
|
|
if ((obj != null) && (obj.[Friend]GetFlags() & 8 != 0))
|
2019-08-23 11:56:54 -07:00
|
|
|
Internal.FatalError("Assert failed", 1);
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
static extern void Write(char8* str, int strLen);
|
|
|
|
|
|
|
|
public static void WriteLine(StringView line)
|
|
|
|
{
|
|
|
|
Write(line.Ptr, line.Length);
|
|
|
|
Write("\n", 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void WriteLine(StringView strFormat, params Object[] args)
|
|
|
|
{
|
|
|
|
String paramStr = scope String();
|
|
|
|
paramStr.AppendF(strFormat, params args);
|
|
|
|
paramStr.Append('\n');
|
|
|
|
Write(paramStr.Ptr, paramStr.Length);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|