MQLplus/lib_debug/lib_debug_disable.mqh

231 lines
8.5 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 16:09:52 +02:00
#ifndef LIB_DBG_DEBUG_RUNTIME_CONFIGURATION_MQH_INCLUDED
#define LIB_DBG_DEBUG_RUNTIME_CONFIGURATION_MQH_INCLUDED
#property version "5.10"
/**********************************************************************************
* Copyright (C) 2020 Dominik Egert <info@freie-netze.de>
*
* This file is the debugger main unloader/disabler library include file.
*
* Lisence applied: GPLv2
* https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Author Dominik Egert / Freie Netze UG.
**********************************************************************************
*
* Version: 5.10
* State: public
*
* File information
* ================
*
*
*
*/
/////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Runtime code setup
//
// Define runtime mode
#define LIB_DBG_DEBUG_MQH_RUNTIME_MODE
// Clear any existing definitions
#undef DBG_DEBUGGER_FLAG_STATE
#undef DBG_STR_EX45_FILEINFO
#undef DBG_STR
#undef DBG_STR_PERSIST
#undef DBG_STR_VAR
#undef DBG_MSG
#undef DBG_MSG_IF
#undef DBG_MSG_PERSIST
#undef DBG_MSG_EVAL
#undef DBG_MSG_EVAL_CMNT
#undef DBG_MSG_EVAL_IF
#undef DBG_MSG_EVAL_IF_CMNT
#undef DBG_MSG_VAR
#undef DBG_MSG_VAR_IF
#undef DBG_MSG_ARRAY_OUT_OF_RANGE
#undef DBG_MSG_LISTDUMP
#ifndef LIB_MQLAPI_CALL_TRACING_ENABLED
#undef DBG_MSG_TRACE_BEGIN
#undef DBG_MSG_TRACE_END
#undef DBG_MSG_TRACE_RETURN
#undef DBG_MSG_TRACE_RETURN_VAR
#undef DBG_MSG_TRACE_RETURN_OBJ
#undef DBG_MSG_NOTRACE_RETURN
#undef DBG_MSG_NOTRACE_RETURN_VAR
#undef DBG_MSG_NOTRACE_RETURN_OBJ
#endif
#undef DBG_SET_UNINIT_REASON
#undef DBG_ENUM_RESOLVER
#undef DBG_MSG_UNINIT_RESOLVER
#undef DBG_MSG_TRACE_FILE_LOADER
#undef DBG_BREAK_IF
#undef DBG_ASSERT
#undef DBG_ASSERT_LOG
#undef DBG_ASSERT_RETURN
#undef DBG_ASSERT_RETURN_VAR
#undef DBG_BREAK_ARRAY_OUT_OF_RANGE
#undef DBG_SLEEP_SECONDS
#undef DBG_SOFT_BREAKPOINT
#undef DBG_SOFT_BREAKPOINT_TS
#undef DBG_SOFT_BREAKPOINT_CONDITION
#undef DBG_SOFT_BREAKPOINT_EXEC_TIME
#undef DBG_BREAK_CONDITION_CREATE
#undef DBG_BREAK_CONDITION_ACTIVATE
#undef DBG_BREAK_CONDITION_DEACTIVATE
#undef DBG_BREAK_CONDITION_ON_ID
#undef DBG_BREAK_CONDITION_ON_ID_RESET
#undef DBG_TRACE_LOOP_BEGIN
#undef DBG_TRACE_LOOP_START
#undef DBG_TRACE_LOOP_FINISH
#undef DBG_TRACE_LOOP_END
#undef DBG_TRACE_LOOP_BEGIN_ID
#undef DBG_TRACE_LOOP_START_ID
#undef DBG_TRACE_LOOP_FINISH_ID
#undef DBG_TRACE_LOOP_END_ID
#undef LIB_DBG_GETTICKCOUNT
#undef LIB_DBG_INCLUDE_COMPLEX_TYPE
#undef DBG_SLEEP_MILLISECONDS
#undef DBG_SLEEP_SECONDS
#undef DBG_STR_TRACE_EXEC_DELAY_INFO
#undef DBG_DEBUGGER_RUNTIME_STATE
#undef DBG_TO_STRING
#undef DBG_STR_IF
#undef DBG_STR_VAR_IF
#undef DBG_STR_BITS
#undef DBG_STR_ERRCODE
#undef DBG_MSG_BITS
#undef DBG_MSG_ERRCODE
#undef DBG_FILE_VARNAME
#undef DBG_GENERIC_ASSERT
#ifndef LIB_MQLAPI_CALL_TRACING_ENABLED
#undef DBG_ERR_SUCCESS
#undef typename_raw
#undef __DBG_STRINGIFY_MACRO
#undef DBG_TRACE_EXEC_DELAY
#undef DBG_MSG_MQLFUNC
#endif
// EX5 File info string
#define DBG_DEBUGGER_FLAG_STATE "[RELEASE]"
#ifndef __MQL4_COMPATIBILITY_CODE__
#define DBG_STR_EX45_FILEINFO StringFormat("MQL5 build: %i %s", __MQL5BUILD__, DBG_DEBUGGER_FLAG_STATE)
#else
#define DBG_STR_EX45_FILEINFO StringFormat("MQL4 Terminal build: %i; compiler build: %i %s", TerminalInfoInteger(TERMINAL_BUILD), __MQL4BUILD__, DBG_DEBUGGER_FLAG_STATE)
#endif
// Remove debug output and comments
// Location string
#define DBG_CODE_LOCATION(x)
// Debug to string functions
#define DBG_STR(x) (string)(NULL)
#define DBG_STR_IF(x) (string)(NULL)
#define DBG_STR_VAR(x) (string)(NULL)
#define DBG_STR_VAR_IF(c, x) (string)(NULL)
#define DBG_STR_PERSIST(x) (string(x))
#define DBG_STR_BITS(x) (string)(NULL)
#define DBG_STR_ERRCODE(x) (string(x))
// Debug std out
#define DBG_MSG(x)
#define DBG_MSG_IF(condition, message)
#define DBG_MSG_FUNC_RETVAL(function_name) function_name
#define DBG_MSG_EVAL(evalutaion_term) evalutaion_term
#define DBG_MSG_EVAL_CMNT(message, evalutaion_term) evalutaion_term
#define DBG_MSG_EVAL_IF(condition, evalutaion_term) evalutaion_term
#define DBG_MSG_EVAL_IF_CMNT(condition, message, evalutaion_term) evalutaion_term
#define DBG_MSG_ARRAY_OUT_OF_RANGE(array, index)
#define DBG_MSG_ARRAY_INDEX_CHECK(array, index) array[index]
#define DBG_MSG_PERSIST(message) printf(message)
#define DBG_MSG_VAR(x)
#define DBG_MSG_BITS(x)
#define DBG_MSG_VAR_IF(x, y)
#define DBG_MSG_VARDUMP(x)
#define DBG_MSG_LISTDUMP(x, y)
#define DBG_MSG_ERRCODE(x)
#define DBG_ENUM_RESOLVER(x)
// Code tracing helpers
#ifndef LIB_MQLAPI_CALL_TRACING_ENABLED
#define DBG_MSG_TRACE_BEGIN
#define DBG_MSG_TRACE_END
#define DBG_MSG_TRACE_RETURN PERF_COUNTER_END return
#define DBG_MSG_TRACE_RETURN_VAR(x) PERF_COUNTER_END return(x)
#define DBG_MSG_TRACE_RETURN_OBJ(x) PERF_COUNTER_END return(x)
#define DBG_MSG_NOTRACE_RETURN PERF_COUNTER_END return
#define DBG_MSG_NOTRACE_RETURN_VAR(x) PERF_COUNTER_END return(x)
#define DBG_MSG_NOTRACE_RETURN_OBJ(x) PERF_COUNTER_END return(x)
#endif
// Debug comments
#define DBG_SET_UNINIT_REASON(x)
#define DBG_MSG_UNINIT_RESOLVER
#define DBG_UNINIT_REASON(x)
#define DBG_STR_COMMENT(x) NULL
#define DBG_MSG_TRACE_FILE_LOADER
// Remove asserts
#define DBG_ASSERT(condition, message)
#define DBG_ASSERT_LOG(condition, message)
#define DBG_ASSERT_RETURN_VOID(condition, message)
#define DBG_ASSERT_RETURN(condition, message, return_value)
#define DBG_BREAK_ARRAY_OUT_OF_RANGE(x, y)
#define DBG_BREAK_IF(x)
// Remove soft break points
#define DBG_SLEEP_SECONDS(x)
#define DBG_SOFT_BREAKPOINT
#define DBG_SOFT_BREAKPOINT_TS(x)
#define DBG_SOFT_BREAKPOINT_CONDITION(x)
#define DBG_SOFT_BREAKPOINT_EXEC_TIME(x)
#define DBG_BREAK_CONDITION_CREATE(x, y)
#define DBG_BREAK_CONDITION_ACTIVATE(x, y)
#define DBG_BREAK_CONDITION_DEACTIVATE(x, y)
#define DBG_BREAK_CONDITION_ON_ID(x)
#define DBG_BREAK_CONDITION_ON_ID_RESET(x)
// Loop tracing
#define DBG_TRACE_LOOP_BEGIN
#define DBG_TRACE_LOOP_START
#define DBG_TRACE_LOOP_FINISH
#define DBG_TRACE_LOOP_END
#define DBG_TRACE_LOOP_BEGIN_ID(x)
#define DBG_TRACE_LOOP_START_ID(x)
#define DBG_TRACE_LOOP_FINISH_ID(x)
#define DBG_TRACE_LOOP_END_ID(x)
//
/////////////////////////////////////////////////////////////////////////////////////////////////////
//
// END Debugging support
//*********************************************************************************************************************************************************/
#endif // LIB_DBG_DEBUG_RUNTIME_CONFIGURATION_MQH_INCLUDED