posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

Hardcode .NET Production Debugging

Splendida sessione di Ingo Rammer sulle tecniche avanzate di debugging per codice managed in produzione che ripercorre le stesse tecniche lette più volte sugli articoli e sul libro di Robbins.

La sessione inizia con una panoramica di Windbg usato per debuggare una applicazione che parte ma non fa apparentemente nulla. Grazie alle estensioni SOS (Son Of Strike) si riescono ad avere informazioni sul codice managed e i dettagli dell'eccezione che non ha permesso alla applicazione di partire. Per la cronaca le estensioni SOS sono utilizzabili anche da VS.NET e sono veramente preziose.

Sui circa 200 comandi di Windbg, Ingo riesce a limitare ad una quindicina i comandi "utili" a capire che succede ad una applicazione managed.

Una valida alternativa (o complemento a seconda dei casi) è il Managed Debugger MDBG. Si parla della versione "sample" e non nel tool incluso nell'sdk che è meno potente.

Poi si passa a "Global Flags" dei debugging tools per intercettare il lancio delle applicazioni (tecnica molto usata da virus/spyware) per lanciare il debugger e intercettare la OnStart di un servizio che fa i capricci.

Particolarmente utile la demo che mostra l'uso del comando gcroot per capire i memory leaks in codice managed. L'errore consisteva in un evento mantenuto in un reference statico che continuava a mantenere i reference di tutti i suoi subscriber che non potevano quindi essere rilasciati.

Si passa infine a adplus.vbs, uno script che crea il crash dump da analizzare post-mortem nel debugger. Invece di debuugarsi a mano il dump, ecco spuntare un tool dello stesso Ingo che è disponibile qui, una vera anteprima che ha mostrato ai presenti al TechEd.

Che dire, ottimi spunti per il prossimo workshop UGIdotNET in cui parleremo anche di queste cose.

Print | posted on mercoledì 8 novembre 2006 10:54 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET