The Importance of Good Debugging Tools

05:29
Thu
28
May 2015

The Importance of Good Debugging Tools

Robert L. Glass wrote an interesting article "Frequently Forgotten Fundamental Facts about Software Engineering". While I am aware he is far more experienced than me and he has sources to backup his opinions, I dare to disagree with following paragraph:

T1. Most software tool and technique improvements account for about a 5- to 30-percent increase in productivity and quality. But at one time or another, most of these improvements have been claimed by someone to have "order of magnitude" (factor of 10) benefits. Hype is the plague on the house of software.

I think that having good tools is one of the most important (and sometimes underrated) factors in programmers' efficiency. From comfortable chair, through fast desktop PC, big monitors, fast Internet connection, to good software, including IDE (editor, compiler, debugger etc.) and auxiliary applications (like Total Commander for file management) - they can all make big difference in how developers feel about their job and how fast the work is going.

Of course, "tools" is a broad term. If by choosing good tools we mean changing used programming language or libraries in the middle of the project, then sure it is usually a bad idea. Writing a script to automate some task that can be done manually in just few minutes or even an hour is usually not worth doing as well.

But what is always worth investing time and money in (either buying or developing your own, learning to use them) are tools that help with debugging. As debugging is the hardest and most time consuming part of programming, any improvement in that process can make as big difference as between minutes and weeks - often in the most critical time, close to the deadline.

So in my opinion, being able to interactively debug executing program (or its trace) - to setup a breakpoint and preview current value of variables (as opposed to relying only on some debug text prints, analyzing logs or some command-line tools) is an absolute minimum to be able to call any programming environment reasonable, mature and eligible to write any serious software in it. If you are the one who writes a program and you have to treat that program as a black box while it is running, without a possibility to peek inside, then something is wrong. AFAIK that is the case with some technologies that deploy program to a server or an embedded device.

How is it in graphics programming? John Carmack once tweeted:

gl_FragColor.x = 1.0; is the printf of graphics debugging. Stone knives and bearskins.

While I share his frustration with such primitive methods of debugging, the reality of today's GPU programming is not all that bad as we could only render red pixels to see any debug information. NVIDIA Nsight offers debugging of a GPU, and so does Intel Graphics Performance Analyzers (GPA). Finally, there is a vendor-agnostic debugger for DirectX developed by Microsoft. Originating from Xbox (that is where its name comes from - Performance Investigator for Xbox), PIX used to be available for free as a standalone application. Recently, they have integrated it as part of Visual Studio called Graphics Diagnostics. It was available in commercial versions of Visual Studio only and not in free Express edition (very bad news for all amateur DirectX game developers), but finally they shipped it for free together with the new, fully-functional Visual Studio Community edition.

With these tools, there is no explanation for whining "nothing renders and I don't know why" - just go debug it! :) The future also looks bright. DirectX 12 will offer Debug layer. Vulkan also claims to support debugging tools and layers and LunarG company even started working on such tool - GLAVE.

Comments (4) | Tags: debugger software engineering | Author: Adam Sawicki | Share

Comments

Packers and Movers Bangalore
2015-07-19 15:08:58
nice post us website packers and movers Noida Visti site:-
Packers and Movers Hyderabad@ http://professionalmovers.in/packers-and-movers-in-hyderabad/
Packers and Movers Noida@ http://professionalmovers.in/packers-and-movers-in-nodia/
Packers and Movers Bangalore@ http://professionalmovers.in/packers-and-movers-in-bangalore/
Packers and Movers delhi@ http://professionalmovers.in/packers-and-movers-in-delhi/
fashion pandora jewelry
2015-09-23 05:34:58
This post is worthy of appreciation, looking forward to more exciting! http://www.cheapandora.com/
pandora charms online store
2015-09-23 05:35:56
Wow, perfect. Fortunately, I found your website!
Thanks for sharing! <a href="http://www.cheapandora.com/pandora-rings-c-3/">pandora charms online store</a>
Toms Shoes Outlet Online
2016-01-04 04:45:36
http://www.oakleysunglassesoutlet.name/ Oakley Sunglasses Outlet
http://www.oakleyoutletstore.net.co/ Oakley Outlet
http://www.raybanoutletstoresonline.net/ Ray Ban Outlet
http://www.ray-bansunglasses.top/ Ray-Ban Sunglasses
http://www.tomsoutletstore.org/ Toms Outlet
http://www.ralphlaurenoutletstoreonline.com/ ralph lauren outlet
http://www.katespadeoutletsstore.com/ Kate Spade Outlet
http://www.air-max2015.org/ air max 2015
http://www.uggoutlets.net/ Uggs Outlet
http://www.adidasoutletstore.org/ Adidas Outlet
http://www.cheapraybansunglasses.org/ cheap ray ban sunglasses
http://www.yeezyboost350.us.com/ Yeezy Boost 350
http://www.nikeoutletsstore.com/ Nike Factory Outlet
http://www.yeezyboost.org/ Yeezy 350
http://www.timberlandoutlet.com.co/ Timberland Outlet
http://www.cheapuggbootsclearance.org/ Cheap Ugg Boots
http://www.longchampoutletstore.us.com/ longchamp outlet
http://www.katespade-outlet.org/ kate spade outlet
http://www.oakleysunglassescheap.net.co/ cheap oakley sunglasses
http://www.uggboots-clearance.com/ Ugg Boots Clearance

Post comment

Nick *
Your name or nickname
E-mail
Your contact information (optional, will not be shown)
Text *
Content of your comment
Calculate *
(* - required field)
STAT NO AD [Stat] [Admin] [STAT NO AD] [pub] [Mirror] Copyright © 2004-2017 Adam Sawicki
Copyright © 2004-2017 Adam Sawicki