Domanda

Come possono i punti di interruzione essere attivate o disattivate in fase di esecuzione? Sto scrivendo un'applicazione banco di lavoro di test in grado di eseguire altro codice .NET ai fini del plugin di debug. L'applicazione Workbench sé non è possibile eseguire il debug (DebuggableNonUserCodeAttribute), ma il codice utente che chiama dovrebbe essere. Ma poi, in determinate circostanze in fase di runtime, i punti di interruzione del codice utente non devono essere onorati.

Posso immaginare diversi modi per raggiungere tale obiettivo, molti non può essere possibile:

1) attaccare e staccare il debugger di codice
2) Attivare e disattivare tutti i breakpoint programmazione (preferibilmente localizzata ad un gruppo o classe)
3) dinamicamente decorare e metodi undecorate con il DebuggableNonUserCodeAttribute in fase di esecuzione.
4) In qualche modo contrassegnare un intero ramo codice di un filo oltre una stackframe scelto come "non-breakpointable" per il debugger. DebuggableNonUserCodeAttribute sembra funzionare solo all'interno di un metodo o di classe, ma non influenza il codice a valle debuggability.

EDIT: Per chiarire: durante l'esecuzione, lo stesso pezzo di codice utente finale verrà eseguito più volte dal eseguibile di hosting, dove alcuni punti di interruzione devono essere onorati e altre volte in cui non dovrebbero essere. Sarebbe inopportuno richiedere che l'utente modificare il loro codice per questa funzione o che sono tenuti a impostare i punti di interruzione condizionali.

È stato utile?

Soluzione

È possibile fare entrambe le cose # 1 e # 2 attraverso la parte Debugger del modello a oggetti di automazione DTE.

Come abilitare / disabilitare i punti di interruzione tramite DTE

Come connettere il debugger tramite DTE

Altri suggerimenti

Si potrebbe utilizzare System.Diagnostics.Debugger. break () invece di punti di interruzione di impostazione. Basta mettere la chiamata al metodo dentro qualunque cosa se sarebbe necessario blocchi.

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