Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to step into Framework source code in MonoDevelop

While debugging a project in MonoDevelop how can I step into Mono Framework source code?

I'm running the vanilla MonoDevelop from openSUSE 11.3.

like image 806
Vitor Py Avatar asked Jul 18 '10 21:07

Vitor Py


3 Answers

This is an old post, but I stumbled upon it looking for the answer today, so hopefully it will help someone else out. Just unchecking the "Do not step into framework code" doesn't work unless you have the source in the location the PDB/MDB files point to. On my box, it was looking for the source at "/usr/src/packages/BUILD/mono-2.10".

In order to find out specifically where it should go for you, generate and log out an exception that contains a stack trace involving the framework (new SqlConnection(null) for example) and it will show you the file location its looking for the source in. For example:

  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 ---
like image 56
Greg Biles Avatar answered Nov 16 '22 08:11

Greg Biles


A key part of the answer if you're just setting up a Mono environment is where to install the source files. For the standard Mono build on Ubuntu Natty, this is /build/buildd. So to get the source of mono 2.6.7 (the Ubuntu build), do:

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

Then ensure you have "Do not step into framework code" unchecked in monodevelop and it should be able to find the sources.

like image 30
Ben Last Avatar answered Nov 16 '22 08:11

Ben Last


Firstly, your Mono class libraries must have debug symbols pointing to the framework source files. Then you should uncheck the "Do not step into framework code" option in MD debugger options.

like image 2
Mikayla Hutchinson Avatar answered Nov 16 '22 07:11

Mikayla Hutchinson