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.