Domanda

L'ho visto nel mio feed RSS di Visual C # 2008 da sempre:

http://lincolnfair.net/oldLincolnFair/mad.jpg

Sono abbastanza sicuro che questa sia una funzionalità unica di VS 2010, ma mi chiedevo se ci fosse comunque modo di replicarla in VS 2008?

È stato utile?

Soluzione

Simile a @Relster, ho uno snippet di codice con il seguente

#if DEBUG
    if( node.Name == "Book" )
        System.Diagnostics.Debugger.Break();
#endif

Dove node.Name == " Book " cambia in base alla condizione per cui voglio testare. il wrapper #if DEBUG si assicura che i controlli non riescano mai a rilasciare il codice.

Questo è anche molto più veloce dell'uso dei punti di interruzione condizionali in Visual Studio. Quando usi il condizionale bp visual studio incorporato devi entrare nell'app, mettere in pausa tutti i thread, valutare l'espressione e determinare se è vera ogni volta che raggiunge il punto di interruzione. In un ciclo stretto questa può essere la differenza tra prestazioni quasi complete ed esecuzione a scansione.

Altri suggerimenti

Puoi farlo anche in VS 2008. Sono sicuro che ci sono molti modi per farlo, ma un modo è fare clic con il pulsante destro del mouse sul punto rosso a margine di un breakpoint esistente & amp; seleziona condition ... , quindi assegna una condizione che restituisce un bool e si interromperà solo se è vero. L'istruzione condizionale dovrebbe avere accesso a tutto ciò che rientra nell'ambito della riga in cui è impostato il punto di interruzione.

Esistono anche altre opzioni nel menu di scelta rapida che ti consentono di filtrare ciò che causerà un'interruzione (ad esempio solo alcuni thread), l'interruzione in base al numero di volte in cui è stato raggiunto il punto di interruzione, esegui macro quando raggiungi il punto di interruzione, ecc.

L'altro modo per farlo è creare le proprie condizioni e utilizzare una chiamata a:

System.Diagnostics.Debugger.Break(); 

Anche se potrebbe non essere sofisticato come il modo VS2010 di impostare i punti di interruzione, puoi ottenere lo stesso effetto con un sovraccarico minimo di codice. Ricorda solo di eliminare queste cose quando crei il codice di rilascio.

Nota: in VS2008 e VS2005, è possibile impostare un breakpoint condizionale impostando un breakpoint regolare (F9 o doppio clic in grondaia), quindi fare clic con il pulsante destro del mouse su quel breakpoint per impostare la condizione "quot ...". La possibilità di impostare punti di interruzione condizionali NON è disponibile in VS2008 Express Edition.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top