Step 3: Innomatic debugging mode and Innocoder Debugger
Introduction
Aside standard debugging tools like Xdebug, Innomatic provides additional debugging and profiling facilities with Innocoder Debugger.
Innomatic can run in a debug mode that can be enabled with Innocoder Debugger in the root desktop:
Debug mode can also be enabled in innomatic/core/conf/innomatic.ini configuration file with the following setting:
PlatformState = debug
Debugging processes
Once the Innomatic Platform debug mode has been enabled, a debug file (PIDs) is created for each call.
Special debug files are automatically created for crashed calls (e.g. PHP fatal errors).
Debug files are accessible inside innomatic/core/temp/pids:
Debug files can also be inspected through Innocoder Debugger in Processes section (here you can also see the previous crashed PID):
Instance data
Accessing the debug information for a process, in the first tab you can see some general instance data (not all of them are always available):
Environment
The second tab shows environment information like PHP extension, memory/time limit if set, etc.
Runtime information
In the Runtime tab you can see logged events, hook events, WUI events, database queries, included PHP files, memory usage.
Source
The Source tab lists all the defined classed and the application defined functions.
Profiler
The profiler Tab displays absolute and cumulative run time at the given markers, both for code and for database queries.
Sending bug reports
Innocoder Debugger tries to guess which application was called when the PID has been created and, if available, extracts the bug report email address of that application. From the “Bug report” tab you can send the bug report along with the PID file in attachment.
Inspecting applications
With Innocoder Debugger you can inspect applications structure, hooks and dependencies in the “Applications” section.
Dependencies
The “Depencencies” tab lists application dependencies, suggestions, other applications depending on or suggesting that application, and which tenants have the application enabled.
Hooks
The hooks section lists all the application hook events and, if any, hooks from other applications.
Structure
The structure section lists all the application components from the application.xml file with their arguments.