Debugging multithreaded code