2010-07-18 79 views
8

在MonoDevelop中調試項目時,我該如何進入Mono Framework源代碼?如何進入MonoDevelop框架源代碼

我從openSUSE 11.3運行vanilla MonoDevelop。

+1

我很想找出如何做到這一點。這裏似乎有一些信息,它看起來像一個功能要求已實施:https://bugzilla.novell.com/show_bug.cgi?id=613000 我知道Mac的MonoDevelop在偏好設置中有此設置,但我不確定如何獲取正確的調試源以及如何從MonoDevelop中設置路徑。就像在鏈接中,我可以在輸入框架代碼時看到堆棧跟蹤,但是我無法用IDE的所有調試功能進入它。 – fletcher 2010-07-18 22:15:35

回答

5

這是一箇舊帖子,但我偶然發現它今天找到答案,所以希望它能幫助別人。除非您在PDB/MDB文件指向的位置有源代碼,否則只需取消選中「不要進入框架代碼」不起作用。在我的盒子上,它正在尋找「/usr/src/packages/BUILD/mono-2.10」的來源。

爲了找出它應該放在哪裏,生成並註銷一個包含涉及框架的堆棧跟蹤(例如,新的SqlConnection(null))的異常,並且它會向您顯示它的文件位置在源,例如:

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

首先,您的Mono類庫必須具有指向框架源文件的調試符號。然後,您應該取消選中MD調試器選項中的「不要進入框架代碼」選項。

4

,如果你只是建立一個單聲道環境答案的一個關鍵部分是在哪裏安裝源文件。對於在Ubuntu Natty上構建的標準Mono,這是/ build/buildd。因此,要獲得單2.6.7(Ubuntu的版本)的來源,這樣做:

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

然後確保你有「不要踏入框架代碼」在MonoDevelop的泛濫,它應該能夠找到源。

+0

我剛剛在Ubuntu 12.04上測試過。像魅力一樣工作。編輯格式以使步驟更加明顯。 – 2013-03-30 10:01:17

0

我不具備的Arch Linux的apt-get source選項,所以我這樣做是根:

# 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 

而不是這些/構建路徑使用自己相應地Greg's answer