Roberto Brunetti

Developing in the cloud

.NET Programming

IntelliTrace e Pinned Debug

Stiamo sviluppando un progetto per una importante azienda farmaceutica, che grazie alle spinte del responsabile progetto, ha deciso di iniziare il progetto su .NET 4.0 e Visual Studio Ultimate 2010.

Quando si affrontano progetti reali si scoprono sempre le magagne del prodotto che spesso, in versione “Demoware” va benissimo. Dall’altra parte però si apprezzano anche le nuove caratteristiche dell’interfaccia.

IntelliTrace è semplicemente fantastico (chi mi conosce sa che non direi mai una cosa del genere se non lo pensassi): sto buttando giù la parte architetturale dello strato DAL e quindi sto facendo girare diversi Unit Test per capire cosa sto combinando.

Tramite IntelliTrace è possibile risalire l’elenco delle chiamate effettuate durante il debug, ovvero “tornare indietro” per rivedere i punti del software da dove siamo passati: molto spesso infatti, quando si incontra un valore strano in una variabile, la colpa va ricercata nel flusso che abbiamo seguito.

Nella figura allegata (cliccarci per ingrandirla), si vede sulla destra la finestra di IntelliTrace che mostra l’elenco delle chiamate che la fase di debugging ha effettuato fino al punto corrente. Si notano una decina di righe di codice eseguite nel metodo GetLibraryByCompanyCompiledQuery che avevo appena eseguito premendo F11 sul punto corrente. Rispetto ad avere soltanto la gerarchia delle chiamate, sappiamo esattamente da dove siamo passati anche dopo l’uscita dal metodo stesso.

IntelliTraceSimple

E’ inoltre possibile, semplicemente cliccando su ciascuna voce, rivedere le righe di codice eseguite (no…non è possibile rieseguirle) come se tornassimo indietro con un VCR qualunque sulle scene precedenti: il termina scena è appropriato in questo su ogni riga eseguita precedentemente è possibile rivedere la Call Stack e lo stato delle variabili !

Nella figura sotto ho semplicemente ricliccato sul punto evidenziato e come si nota stiamo vedendo il thread, il metodo da cui è stata effettuata la chiamata e cliccando sui “link” possiamo accedere allo stato dell’applicazione.

IntelliTraceBack

 

Altra feature carina e a prima vista “quasi inutile” è la possibilità di bloccare la visualizzazione durante il debugging di alcune variabili: in pratica anzichè dover inserire la variabile come watch è possibile, passando con il mouse sopra la variabile stessa, far apparire un box con l’analizzatore della classe…e fin quì….c’era tutto anche in VS 2008…vero, ma adesso è possibile fare il Pinning della finestrina e lasciarla lì per sempre !

 

WatchPinned

A parole è impossibile spiegare quanto sia comodo: è comodo anche perchè in VS 2008 erano più le volte che spariva dalla vista non appena avevamo aperto tutto il grafo di oggetti passando 40 secondi ad arrivare al punto giusto…per poi sbagliare di un decimo di millimetro il click sull’ultimo “+”.

E’ anche possibile aprire con l’ultimo pulsantino in basso una finestrina di commento: anche questo commento resta nel sorgente per essere rivisto a posteriori. In pratica possiamo commentare alcuni punti del sorgente durante il debug.

Provare per credere

Posted: gen 15 2010, 05.58 by rob | with no comments
Filed under: ,