You might be using already the whole day Firebug and wondering how the hell you could have coded without this awesome tool in the past, but as every software, it has bugs and it's not complete.
Thanks god it exists! Don't take me bad.
Sometimes Firebug becomes useless and here it comes Charles to give you a hand.It acts as a proxy, which you install on your client and it save and display everything that pass through the network cable! The great thing is that it saves what you need and offers you several ways to inspect the content saved.
Doing so, it allows you, for example, to inspect the calls made by your new iPhone application to the server, the ajax calls made by all your browsers, email clients, IM desktop applications and so on.
Personally, I do most of the time web work and I've found that firebug it's often enough but as more asynchronous system you build, as more debugging tools you need. This because it becomes harder to track down the calls made and inspect the answers obtained.
For example, it happened recently to me that the web application I was coding for, had a bug in a javascript algorithm, which caused an horrible endless loop with the result of thousands of ajax calls made with no reasons. Firebug couldn't handle this situation, because I couldn't stop it in the middle of the loop and check what was going on, so I switched to Charles and started recording the calls made. Once stopped, I have been able to inspect every single call made, every response and headers. In few minutes I figured out where the bug was and I could patch it quickly.
One of the feature I like in Charles is that it offers you many ways to display the content of a transaction which makes it very powerful for any kind of development/debugging process.
It handles JSON beautifully, offering you a tree-like folder visualization of objects which you can expand.
Definetly worth 40US$.


