如何在MonoDevelop中进入Framework源代码

时间:2010-07-18 21:13:39

标签: mono monodevelop

在MonoDevelop中调试项目时,如何进入Mono Framework源代码?

我正在从openSUSE 11.3运行vanilla MonoDevelop。

4 个答案:

答案 0 :(得分: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 ---

答案 1 :(得分:4)

如果您只是设置Mono环境,答案的关键部分是安装源文件的位置。对于Ubuntu Natty上的标准Mono构建,这是/ build / buildd。因此,要获得mono 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中未选中“不要进入框架代码”,它应该能够找到源代码。

答案 2 :(得分:2)

首先,您的Mono类库必须具有指向框架源文件的调试符号。然后,您应该取消选中MD调试器选项中的“不要进入框架代码”选项。

答案 3 :(得分:0)

我在Arch Linux中没有apt-get source选项,所以我以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

而不是这些/构建路径相应地使用您自己的Greg's answer