Figure 1: The macros ELF_FUNCT_DEF() and ELF_FUNCT_DEF_END.

#define ELF_FUNCT_DEF( signature )\
  signature { string ELF_FUNC_NAME(#signature ) ; LogManager::\
   FunctCallMonitor tmp_092192(logManager.funcCallTracingIsOn(),\
       #signature ) ; \
   try

#define ELF_FUNCT_DEF_END catch( ELF::Exception &e ) {\
  e.addStackFrame( ELF_FUNC_NAME );\
   throw ; \
   }\
}