1. A method of debugging a software application comprising a plurality of processes that asynchronously co-operate and whose execution is controlled through interaction with run-time code, said method comprising: providing at least one software portion to said run-time code to periodically invoke a debugging component, to debug said software application.