This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

73 lines
2.3 KiB
C

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: This file sets all of our debugging flags. It should be
// called before all other header files.
//
// $NoKeywords: $
//=============================================================================//
#ifndef DBGFLAG_H
#define DBGFLAG_H
#ifdef _WIN32
#pragma once
#endif
// Here are all the flags we support:
// DBGFLAG_MEMORY: Enables our memory debugging system, which
// overrides malloc & free DBGFLAG_MEMORY_NEWDEL: Enables new / delete
// tracking for memory debug system. Requires DBGFLAG_MEMORY to be enabled.
// DBGFLAG_VALIDATE: Enables our recursive validation system for
// checking integrity and memory leaks
// DBGFLAG_ASSERT: Turns Assert on or off (when off, it isn't
// compiled at all)
// DBGFLAG_ASSERTFATAL: Turns AssertFatal on or off (when off, it isn't
// compiled at all)
// DBGFLAG_ASSERTDLG: Turns assert dialogs on or off and debug breaks
// on or off when not under the debugger.
// (Dialogs will always be on
//when process is being debugged.)
// DBGFLAG_STRINGS: Turns on hardcore string validation (slow but
// safe)
#undef DBGFLAG_MEMORY
#undef DBGFLAG_MEMORY_NEWDEL
#undef DBGFLAG_VALIDATE
#undef DBGFLAG_ASSERT
#undef DBGFLAG_ASSERTFATAL
#undef DBGFLAG_ASSERTDLG
#undef DBGFLAG_STRINGS
//-----------------------------------------------------------------------------
// Default flags for debug builds
//-----------------------------------------------------------------------------
#if (defined(_DEBUG) || defined(RELEASEASSERTS))
#define DBGFLAG_MEMORY
#ifdef _SERVER // only enable new & delete tracking for server; on client it
// conflicts with CRT mem leak tracking
#define DBGFLAG_MEMORY_NEWDEL
#endif
#ifdef STEAM
#define DBGFLAG_VALIDATE
#endif
#define DBGFLAG_ASSERT
#define DBGFLAG_ASSERTFATAL
#define DBGFLAG_ASSERTDLG
#define DBGFLAG_STRINGS
//-----------------------------------------------------------------------------
// Default flags for release builds
//-----------------------------------------------------------------------------
#else // _DEBUG
#ifdef STEAM
#define DBGFLAG_ASSERT
#endif
#define DBGFLAG_ASSERTFATAL // note: fatal asserts are enabled in release
// builds
#define DBGFLAG_ASSERTDLG
#endif // _DEBUG
#endif // DBGFLAG_H