[Sponsored Post Developer Strawdog Studios explains how NVIDIA's Nsight Tegra, and specifically its debugger, powered development of its upcoming game.]
Veteran programmers of a certain age will happily recount old-school war stories involving marathon sleepless debugging sessions where bugs were discovered in DVD-only release builds at the 11th hour and that they managed to debug the problem and save the day using just printf.
This was our experience with Android development over the last year, reminding me exactly how much we take debuggers for granted. Until recently, debugging on Android had sadly remained an unsolved challenge for us, and that meant we were still in the trenches, developing on Android with only a printf to keep us going. We were constantly and painfully reminded of how massively time consuming it is to develop without a debugger. And time means money, right?
Well, you can imagine how excited we were to learn about NVIDIA’s Nsight Tegra, a complete Android integration into Visual Studio, that not only promised us a debugger, but also a development environment. We were busy working on our forthcoming Android title “Space Ark THD”, a new mobile optimized version of our Xbox360 Live Arcade title (coming real soon to Google Play!!), and we were getting pretty fed up with printf style development.
I can’t emphasize enough how useful it was to perform single step debugging through unfamiliar code to get a feel for how it all works. Our approach was to slowly introduce systems one by one verifying that each core system was stable. You can’t even imagine how productive we were with a solid debugger.
At one point, we ran into a crash in some seemingly benign constructor code. We quickly identified the problem by single stepping through the disassembly in Visual Studio. Our initial assumptions about the cause were completely wrong and fairly paranoid – memory overwrites, member initialization order etc. How long that would have taken to fix with the old-skool printf style?
With Nsight Tegra we were quickly able to quickly iterate on broken code, saving time and money. I expect in some parallel universe there’s another version of me continuing to do this work without a debugger, and he sure looks pissed off!