Se ho accesso fisico alla macchina, eseguo il debug con qualsiasi mezzo necessario perché ovviamente c'è un qualche tipo di difetto che la mia app dovrebbe gestire meglio di quello che è (se l'app è in fase di salvataggio con logging intelligente e un buon messaggio allora Dovrei avere una vaga idea di cosa c'è che non va già nell'ambiente). Ho dovuto fare questo semplicemente controllando i registri di sistema, il debugging attivo e le build di debug speciali con la registrazione aggiuntiva integrata, ma ne vale quasi sempre la pena in ciò che espone.
Se non ho accesso fisico alla macchina ci sono alcune cose che cercherò sempre di avere il controllo dell'utente (registro eventi, eventuali registri nella mia app, ecc.) e di solito alcune cose specifiche per l'app, come le impostazioni del registro, la registrazione della DLL, qualunque sia. Non esagero molto oltre, perché i rischi di immergersi in profondità su una macchina probabilmente compromessa da remoto sono troppo spaventosi per contemplare.