Add the ability to remote debug my application running in the cloud
At PDC 2010, we announced the introduction of new diagnostic information in Azure, and remote desktop functionality to make it easier to connect to a running instance for monitoring and troubleshooting. Both will will be generally available later this year.
We look forward to hearing how much these new features improve the remote debugging experience for you.
Scott Oseychik commented
Respectfully, a couple of points in regards to debugging ...
>> I agree that debugging in production doesn't make real sense
Why not? What if it's all you're left with to restore production service using a debugger + conditional breakpoints?
>> When you build and release a commercial product how often do you get to connect to it, if ever?
This is a daily occurrence in any software companies' Escalation Services / Sustained Engineering group(s). For example, attaching & rewriting a process' instruction pointer to temporarily "step around" bugs is common practice.
Mike Kelly commented
I think one win here would be able to more easily get application level traces into logging. Right now, I have to instrument every method to get a trace of what's happening on the cloud fabric with e.g. my worker role and persist that logging information to the diagnostics API. It would be great if (like DEBUG) there is a switch which when I compile my assembly with it, it turns on tracing for a source file or class in the cloud fabric - so I start seeing in application logs the real-time execution trace of m my code without having to do a lot of manual work.
Roy Morey commented
I agree that debugging in production doesn't make real sense, however, debugging an application in Staging is valuable because there are always differences between real Azure and the local development sandbox. So it helpful to be able to step through a service or web app running on Azure and track down permissions problems, connnectivity/network issues, etc. While it's always possible to debug using a trace log, modern debuggers were specifically developed to avoid that kind of pain.
Jim Nakashima commented
We get a fair amount of feedback that we need to improve the ability to debug an application in the cloud and we'd like to better understand what that means to you.
We have a fairly comprehensive set of diagnostics available with the November release -- how else can we help you diagnose/debug your applications running in the cloud? (since the 2 comments don't support wanting the ability to attach a debugger to role instances running in the cloud)
I agree with Joannes -- this might sound great in theory but it seems like a significant technical hurdle. Isn't this what the local development sandbox is for? When you build and release a commercial product how often do you get to connect to it, if ever?
Joannes Vermorel commented
We have been working a lot on debugging our own cloud app. Bottom line is: debugger is really NOT the way to go to troubleshoot any complex distributed apps. Although, it might look like reassuring to be able to plug the debugger on a remote instance, in my (limited) experience the amount of bugs that you would be able to catch that way would be close to zero.