Process debugger

Hi Martin,
my 2 cents:
not sure if we are talking about the same type of debugging, but with processes that don’t behave as expected, often the question arises: 'what is this process waiting for? ’ . Which tasks should be completed, which timers are waiting, which other catching events are possible…

In our application with activiti, we created a poor-man’s solution that prints the execution tree in ascii. We also included showing bpmn-message or bpmn-signal subscriptions for the scope of execution nodes. It’s nothing fancy and probably could be optimized, but it greatly helps people understand what is happening and gives some debugging powers to business people (non-developers). And it avoids having to write hierarchical database queries.
See below for sample output.
But you get the idea… you can see what’s happening, and given some fancy gui work you can imagine showing extra relevant debugging info when clicking a node in the tree.

Sample output

└── 1605002 ProcessInstance[1605002] ParallelGateway[sid-7343E6FE-FD29-4826-A28A-5F90949E1984]
    ├── 1612502 ConcurrentExecution[1605002] UserTask[na 5min wachten]
    ├── 1612503 ConcurrentExecution[1605002] ParallelGateway[sid-AEAC7B2D-128B-47F0-B7EF-323D52AEA63E]
    └── 1612504 ConcurrentExecution[1605002]
        └── 1612516 ScopeExecution[1605002]
            └── 1610020 ScopeExecution[1605002] ParallelGateway[sid-9CE52A78-2DCD-447C-97AF-17D82AFEB40C] Scope[subproces in tweede subproces,stap 3 tweede subproces]
                ├── 1610024 ConcurrentExecution[1605002] UserTask[taak in subsub A]
                └── 1610025 ConcurrentExecution[1605002] UserTask[taak in subsub B]