2010-04-11 23 views

risposta

37

Fare clic su Debug, Nuovo punto di interruzione, Interrompi funzione, quindi immettere il nome completo della funzione.

+2

non potevo' t ottenere questo funziona sotto VS2012 poiché ha detto che non poteva verificare la funzione zione. Sembrava essere in grado di trovare funzioni all'interno della soluzione ma non nelle librerie referenziate. – Sam

+2

Ignora questo avviso e dovrebbe funzionare comunque – SLaks

+5

Ora è chiaro per me, ma ricorda di includere lo spazio dei nomi completo della funzione esclusa la parentesi. –

13

È possibile effettuare una delle operazioni seguenti:

  1. Aggiungere il progetto DLL alla soluzione contenente l'eseguibile. Quindi puoi impostare i punti di interruzione normalmente.
  2. Si potrebbe invece basta aprire il progetto DLL e utilizzare il Debug -> Connetti a processo da allegare al EXE esecuzione
+11

(2) trovo facile - basta eseguire due istanze di lato Studio a fianco Ctrl-F5 sulla 'primaria' uno a lauch wihtout il debugger, quindi connettersi al processo con l'istanza di studio che si sta modificando il progetto della libreria –

+2

FREP D.. -Oronge, si dovrebbe aggiungere che come una risposta -..!. sembra che l'approccio globale più semplice –

+0

@ FrepD-Oronge vorrei poter avere leggi il tuo commento 2 ore e 39 min indietro You rock sua sicuramente la soluzione più semplice – Nova

5

Assicurarsi di avere il file PDB nella cartella bin/debug in cui la classe di riferimento la libreria dll risiede. Quando esegui il debug della tua soluzione corrente dovresti essere in grado di accedere al codice dalla libreria di classi. Quando entrate nella libreria di classi sarete in grado di impostare i breakpoint.

15

In Visual Studio aprire il file sorgente della DLL di riferimento che contiene il metodo desiderato menù manualmente utilizzando

File> Apri> File ...

quindi impostare il punto di interruzione cliccando su il bordo sinistro nell'editor di codice. Ciò consente di interrompere qualsiasi linea di codice e non solo per le chiamate di funzione. Visual Studio mostra il punto di interruzione in una sorta di stato disabilitato, perché ritiene che il codice non sia raggiungibile. Ignoralo; il punto di interruzione diventa attivo una volta eseguito il codice.

5

So che questa è una vecchia domanda, ma potrebbe essere di aiuto a molti.

Per il debugger per funzionare correttamente, è necessario caricare il debug database di simboli, un file PDB con lo stesso nome il gruppo che si desidera eseguire il debug. Se fa parte di una soluzione che hai creato, puoi semplicemente copiarlo e incollarlo dalla cartella bin dell'altra soluzione. Quindi aggiungere un punto di interruzione che specifica il percorso completo del metodo che si desidera eseguire il debug, oltre al nome dell'assembly in cui risiede. EX: "MyNamespace.MayClass.MyMethod, MyAssemblyName"

Se non si possiede il codice che si avere 2 opzioni, entrambe che coinvolgono un dissasemblatore. Io uso dotPeek per questo, dato che fa davvero un salto.

Opzione 1: si apre l'assemblea con dotPeek e creare un unico PDB per questo, quindi copiarlo nella cartella bin e seguire la procedura descritta sopra. https://www.jetbrains.com/decompiler/help/Generating_PDB_Files.html

Opzione 2: utilizzare dotPeek Symbol Server e PDB Generation. https://www.jetbrains.com/decompiler/help/Symbol_Server_and_PDB_Generation.html Successivamente seguire le istruzioni sopra per allegare un'istanza debugger.

Spero che questo aiuti

+0

Wow, la generazione di PDP di dotPeek è sorprendente. –

+0

C'è anche uno strumento che può recuperare il PDB direttamente dai server dei simboli (configurato in base al server dei simboli MS ufficiale [http://msdl.microsoft.com/download/symbols] per impostazione predefinita): https://github.com/rajkumar -rangaraj/PDB-Downloader. –

0

Questa non è la mia risposta, è stato il suggerimento di FREP D-Oronge in una delle osservazioni di cui sopra. E 'facile e funziona senza intoppi:

"Trovo facile - basta eseguire due istanze di lato Studio a fianco.Ctrl-F5 sulla 'primaria' uno per lanciare senza il debugger, quindi connettersi al processo con l'istanza di studio che si sta modificando il progetto biblioteca"

Tutti i crediti sono dovuti a lui.

Problemi correlati