Debug Monitor


This is a primary development tool, provided to developers to make debugging and problem identification easier. It allows developers to log any important event, database state, exception etc., by sending information to a text based formatted output.

The magic of this service is that it’s available in the final compilation also, not just in the debug version.

All you have to do is:

  • call the Debug Manager functions (DBPrintf, DBAssert, DBBreak …etc) of the GSRoot module from your source code to preserve any run-time information you want,
  • start the Debug Monitor application while/before ARCHICAD is running,
  • check the content of the Debug Monitor’s Log window to catch the information in your interest.

Please refer to the GRAPHISOFT Root Package Debug Manager documentation for more details.

The example projects uses this service extensively, mainly to catch the error codes returned by the API. Analyze the example sources to get hints what purpose this service can be used for.



Based on the debug level passed to the make scripts, the DEBUVERS compiler directive is set up automatically. The GSRoot module sets up some macros and new services, depending on this switch.

  • The Debug Manager functions can be called in any environment, their output will be shown in the Log window without any condition.
  • The macros (like DBPRINTF, DBASSERT, DBBREAK …etc) will have effects only in case when DEBUVERS is defined, i.e. when the #ifdef DEBUVERS condition is true.

On Mac OS X this application is no longer necessary, because debug messages are automatically logged by (an application provided by Apple; in the Applications/Utilities folder).



The Debug Monitor is used by ARCHICAD extensively. This means that a lot of information is sent to the Log window from the ARCHICAD source code. It may happen that a problem is highlighted, because your functions are not perfectly coded or embedded into the environment. Please try to focus on all the information highlighted in the Log window -especially those that report problems- since the ARCHICAD world is very complex. It can happen that your functions may cause unwanted effects on other services.