Domanda

Ho una libreria di terze parti che costruisce e utilizza internamente la classe SqlConnection.Posso ereditare dalla classe, ma ha un sacco di sovraccarichi e finora non sono riuscito a trovare quello giusto.Quello che mi piacerebbe è aggiungere un parametro alla stringa di connessione utilizzata.

Esiste un modo per inserire un punto di interruzione nel core della libreria .NET stessa?In particolare nei costruttori della classe SqlConnection, in modo da poter guardare l'analisi dello stack e vedere dove viene effettivamente costruito?

A parte questo, c'è qualche altro modo in cui posso farlo?

Nello specifico, quello che voglio fare è aggiungere il Nome dell'applicazione parametro, in modo che la nostra applicazione venga identificata più facilmente sul server quando si esaminano le connessioni.


Modificare:Beh, sembra che abbia bisogno di più aiuto.Penso di aver abilitato tutto ciò che riguarda il supporto del server dei simboli e ho notato che la directory che ho configurato si è riempita di directory che contengono file .pdb.Tuttavia, non riesco a rendere disponibile il sorgente effettivo della classe SqlConnection.

Esiste una guida precisa su come farlo con successo?

È stato utile?

Soluzione

E se non puoi utilizzare il debug a livello sorgente con il codice sorgente .Net Framework fornito da Microsoft, puoi provare un debugger diverso.Come mdbg o anche windbg.

modificare

Questo spiega come ottenere le parti rilasciate di .Net Framework e come impostare i punti di interruzione in modo molto dettagliato.NetMassDownloader ti fornirà tutto (pdf e sorgente) in un unico download.Ma non tutto il codice sorgente del framework .Net è disponibile.Se il tuo SqlConnection non lo è, puoi sempre utilizzare debugger IL come quelli che ho menzionato.E non dimenticare comunque Reflector di Lutz per darti un'occhiata al codice sorgente.

Altri suggerimenti

Puoi scaricare il codice sorgente .NET e imposta il punto di interruzione direttamente nel codice sorgente del firmware .NET.

Puoi usare NetMassDownloader per acquisire rapidamente le origini .NET.

Secondo questo articolo è possibile scaricare il codice sorgente per il framework .NET ed eseguirne il debug utilizzando Visual Studio:

http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code

Quasi dimenticavo di menzionarlo Deblector - è un plugin Reflector, che ti permette di eseguire il debug di quasi tutte le app .net senza codici sorgente :)

Sebbene il debug del codice sorgente sia decisamente migliore, non sono necessari pdbs o source affinché il debugger VS imposti un bp sulla funzione desiderata.

Assicurati di andare su Strumenti/Opzioni/Debugger e di disattivare l'opzione chiamata "Just My Code".Poiché il framework non è il "tuo codice", il debugger ti impedisce inutilmente di impostare punti di interruzione lì.

Successivamente è necessario il nome completo del metodo così come appare nei metadati.Ciò include tutti gli spazi dei nomi in cui è nidificato.Consiglierei ILDasm o Reflector se hai bisogno di trovare il nome.

Nella finestra dei punti di interruzione nell'angolo in alto a sinistra c'è un pulsante del menu "nuovo bp".Una delle scelte è impostare un bp sul nome della funzione.Quando viene visualizzata la finestra di dialogo, deseleziona il fatto che IntelliSense controlli il nome poiché non hai un progetto.Spero che aiuti.

OK, se vuoi la guida definitiva, eccola qui:

Configurazione di Visual Studio per eseguire il debug del codice sorgente di .NET Framework

Se vuoi aiuto, vai avanti e spiega quali passaggi hai eseguito?

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