2010-07-18 77 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