OT: Jag säger om programmering och programspråk som röde baronen sa om luftstrider; "Det är inte planet som avgör, utan piloten".
Skit in - skit ut, oavsett programspråk.
Inte OT:
Om det går i din utvecklingsmiljö, kör med trace, det underlättar debugging (finns bra exempel på
http://www.thecodeproject.com/, sök efter "trace")
Du kan även använda dig av hooks för att leta efter fel vid runtime (Ja, de är faktiskt inte bara till för keyloggers

), det finns även en del färdiga program (Filemon, PMon m.m.) på .
Om mjukvaran körs i live miljö, skriv en telnetserver som du kan "logga in" på och övervaka flöden, variabler m.m. (Glöm för sjutton inte att ta bort den ifrån slutprojektet!)
Sen får du inte glömma de mest uppenbara funktionerna i din IDE som breakpoints, variabellistor och proper errortrapping med loggning av vad som gick snett.
Till sist: att skriva en applikation så att den har någon form av fail-safe är alltid en bra, t.ex. om du leker med SeDebugPrivilege i Windows och glömmer returnera Tokenpriv's så kan det bli gonatt windows och sen ser du bios räkna upp minnet igen