Как войти в исходный код Framework в MonoDevelop - PullRequest
8 голосов
/ 19 июля 2010

При отладке проекта в MonoDevelop, как я могу войти в исходный код Mono Framework?

Я запускаю ванильный MonoDevelop из openSUSE 11.3.

Ответы [ 4 ]

5 голосов
/ 02 апреля 2011

Это старый пост, но я наткнулся на него, ища ответ сегодня, так что, надеюсь, он поможет кому-то еще. Просто снятие флажка «Не входить в код фреймворка» не сработает, если у вас нет источника в том месте, на которое указывают файлы 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 ---
4 голосов
/ 06 октября 2011

Ключевой частью ответа, если вы просто настраиваете среду Mono, является место установки исходных файлов. Для стандартной сборки Mono на Ubuntu Natty это / 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, и он сможет найти источники.

2 голосов
/ 19 июля 2010

Во-первых, ваши библиотеки классов Mono должны иметь отладочные символы, указывающие на исходные файлы платформы. Затем вы должны снять флажок «Не входить в код фреймворка» в параметрах отладчика MD.

0 голосов
/ 27 октября 2016

У меня нет опции apt-get source в Arch Linux, поэтому я сделал это как 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

Вместо этих путей / build используйте свой собственный соответственно ответ Грега .

...