Update debugging macros overview in the docs.
Describe how the debugging macros really work since 2.9.1, i.e. explain wxDEBUG_LEVEL and NDEBUG instead of __WXDEBUG__. Closes #14435. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71887 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -12,13 +12,24 @@
 | 
				
			|||||||
@ingroup group_funcmacro
 | 
					@ingroup group_funcmacro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Useful macros and functions for error checking and defensive programming.
 | 
					Useful macros and functions for error checking and defensive programming.
 | 
				
			||||||
wxWidgets defines three families of the assert-like macros: the wxASSERT() and
 | 
					
 | 
				
			||||||
wxFAIL() macros only do anything if __WXDEBUG__ is defined (in other words, in
 | 
					Starting with wxWidgets 2.9.1, debugging support in wxWidgets is always
 | 
				
			||||||
the debug build) but disappear completely in the release build. On the other
 | 
					compiled in by default, you need to explicitly define ::wxDEBUG_LEVEL as 0 to
 | 
				
			||||||
hand, the wxCHECK() macros stay in release builds but a check failure doesn't
 | 
					disable it completely. However, by default debugging macros are dormant in the
 | 
				
			||||||
generate any user-visible effects. Finally, the compile time assertions don't
 | 
					release builds, i.e. when the main program is compiled with the standard @c
 | 
				
			||||||
happen during the run-time but result in the compilation error messages if the
 | 
					NDEBUG symbol being defined. You may explicitly activate the debugging checks
 | 
				
			||||||
condition they check fail.
 | 
					in the release build by calling wxSetAssertHandler() with a custom function if
 | 
				
			||||||
 | 
					needed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					When debugging support is active, failure of both wxASSERT() and wxCHECK()
 | 
				
			||||||
 | 
					macros conditions result in a debug alert. When debugging support is inactive
 | 
				
			||||||
 | 
					or turned off entirely at compilation time, wxASSERT() and wxFAIL() macros
 | 
				
			||||||
 | 
					don't do anything while wxCHECK() still checks its condition and returns if it
 | 
				
			||||||
 | 
					fails, even if no alerts are shown to the user.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Finally, the compile time assertions don't happen during the run-time but
 | 
				
			||||||
 | 
					result in the compilation error messages if the condition they check fail.
 | 
				
			||||||
 | 
					They are always enabled and are not affected by ::wxDEBUG_LEVEL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Related class group: @ref group_class_debugging.
 | 
					Related class group: @ref group_class_debugging.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user