In c# I can use the following code to have code which only executes during debug build, how can I do the same in xcode?
if #DEBUG
{
// etc etc
}
In c# I can use the following code to have code which only executes during debug build, how can I do the same in xcode?
if #DEBUG
{
// etc etc
}
You can use
#ifdef DEBUG
....
#endif
You'll need to add DEBUG=1
to the project's preprocessor symbol definitions in the Debug configuration's settings as that's not done for you automatically by Xcode.
I personally prefer doing DEBUG=1
over checking for NDEBUG=0
, since the latter implies that the default build configuration is with debug information which you then have to explicitly turn off, whereas 'DEBUG=1' implies turning on debug only code.
The NDEBUG symbol should be defined for you already in release mode builds
#ifndef NDEBUG
/* Debug only code */
#endif
By using NDEBUG you just avoid having to specify a -D DEBUG argument to the compiler yourself for the debug builds
There is a very useful debugging technote: Technical Note TN2124 Mac OS X Debugging Magic http://developer.apple.com/technotes/tn2004/tn2124.html#SECENV which contains lots of useful stuff for debugging your apps.
Tony