2010-07-18 13 views
8

Durante il debug di un progetto in MonoDevelop, come posso accedere al codice sorgente di Mono Framework?Come accedere al codice sorgente Framework in MonoDevelop

Sto eseguendo il vanilla MonoDevelop da openSUSE 11.3.

+1

Sono abbastanza interessato a scoprire come farlo. Sembra che ci siano alcune informazioni qui, sembra una richiesta di funzionalità implementata: https://bugzilla.novell.com/show_bug.cgi?id=613000 So che MonoDevelop per Mac ha questa impostazione nelle preferenze ma Non sono sicuro di come acquisire la corretta fonte di debug e come impostare il percorso da MonoDevelop. Come nel link, posso vedere la traccia dello stack quando viene immesso il codice framework, ma non posso entrare con tutte le funzionalità del debugging usando l'IDE. – fletcher

risposta

5

Questo è un vecchio post, ma mi sono imbattuto in esso cercando la risposta oggi, quindi spero che possa aiutare qualcun altro. Basta deselezionare il "Do not step into framework code" non funziona se non si ha l'origine nella posizione indicata dai file PDB/MDB. Sulla mia scatola, cercava la fonte in "/usr/src/packages/BUILD/mono-2.10".

Per individuare in modo specifico dove dovrebbe andare per te, generare e disconnettere un'eccezione che contiene una traccia di stack che coinvolge il framework (nuovo SqlConnection (null) per esempio) e ti mostrerà la posizione del file il suo aspetto per la sorgente in. ad esempio:

at System.Net.Sockets.NetworkStream.Read (System.Byte[] buffer, Int32 offset, Int32 size) [0x00065] in /usr/src/packages/BUILD/mono-2.10/mcs/class/System/System.Net.Sockets/NetworkStream.cs:369 
    at Mono.Data.Tds.Protocol.TdsComm.Read (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000] in /usr/src/packages/BUILD/mono-2.10/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/TdsComm.cs:630 
    --- End of inner exception stack trace --- 
2

In primo luogo, le librerie di classi Mono devono disporre di simboli di debug che puntano ai file di origine framework. Quindi è necessario deselezionare l'opzione "Non passare al codice quadro" nelle opzioni del debugger MD.

4

una parte fondamentale della risposta se sei solo la creazione di un ambiente di Mono è dove installare i file di origine. Per la versione standard di Mono su Ubuntu Natty, questo è/build/buildd. Quindi, per ottenere la fonte di mono 2.6.7 (build di Ubuntu), do:

sudo mkdir /build 
cd /build 
sudo mkdir buildd 
cd buildd 
sudo apt-get source mono 
sudo apt-get install mono-dbg 

Quindi assicurarsi di avere "Non passo in codice del framework" non controllato nel MonoDevelop e dovrebbe essere in grado di trovare le fonti.

+0

Ho appena testato su Ubuntu 12.04. Funziona come un fascino. Modificato il formato per rendere i passaggi più visibili. –

0

Non ho l'opzione apt-get source in Arch Linux, quindi ho fatto questo come root:

# git clone https://github.com/mono/mono.git /opt/mono-src 
# mkdir -p /build/mono/src 
# ln -s /opt/mono-src /build/mono/src/mono-4.6.1 

Invece di questi/costruire percorsi di utilizzare il proprio conseguenza per Greg's answer.

Problemi correlati