Вопрос

У меня есть сторонняя библиотека, которая внутренне создает и использует класс SqlConnection.Я могу наследовать от класса, но у него масса перегрузок, и до сих пор я не смог найти нужный.Что бы я хотел, так это привязать параметр к используемой строке подключения.

Есть ли у меня способ установить точку останова в самом ядре библиотеки .NET?В частности, в конструкторах класса SqlConnection, чтобы я мог посмотреть на трассировку стека и увидеть, где она на самом деле создается?

Кроме этого, есть ли какой-нибудь другой способ, которым я могу это сделать?

В частности, то, что я хочу сделать, это закрепить на Название приложения параметр, позволяющий легче идентифицировать наше приложение на сервере при просмотре подключений.


Редактировать:Что ж, похоже, мне нужна дополнительная помощь.Я думаю, что я включил все, что связано с поддержкой symbol server, и я заметил, что каталог, который я настроил, заполнился каталогами, содержащими файлы .pdb.Тем не менее, я не могу сделать доступным фактический исходный код класса SqlConnection.

Есть ли какое-то определенное руководство о том, как это успешно сделать?

Это было полезно?

Решение

И если вы не можете использовать отладку на уровне исходного кода с помощью .Исходного кода Net Framework, предоставленного Microsoft, вы можете попробовать другой отладчик.Как mdbg или даже windbg.

Редактировать

Это очень подробно объясняет получение выпущенных частей .Net Framework и как устанавливать точки останова.NetMassDownloader предоставит вам все (pdb и исходный код) за одну загрузку.Но доступен не весь исходный код .Net framework.Если вашего SqlConnection нет, вы всегда можете использовать IL-отладчики, подобные тем, о которых я упоминал.И не забудьте про Рефлектор Лутца, который в любом случае даст вам возможность взглянуть на исходный код.

Другие советы

Ты можешь загрузить исходный код .NET и установите точку останова прямо в исходном коде .NET FW.

Вы можете использовать NetMassDownloader - Сетевой загрузчик чтобы быстро получить доступ к исходным кодам .NET.

Согласно этой статье, вы можете загрузить исходный код для .NET Framework, а затем отладить его с помощью Visual Studio:

http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code

Я чуть не забыл упомянуть Дефлектор - это плагин Reflector, который позволяет вам отлаживать практически любое .net-приложение без исходных кодов :)

Хотя отладка с исходным кодом определенно лучше, вам не нужны файлы PDF или исходный код для VS debugger, чтобы установить bp для нужной вам функции.

Убедитесь, что вы зашли в Tools / Options / Debugger и отключили опцию под названием "Только мой код".Поскольку фреймворк не является "вашим кодом", отладчик бесполезно запрещает вам устанавливать там точки останова.

Далее вам понадобится полное название метода в том виде, в каком оно указано в метаданных.Это включает в себя любые пространства имен, в которые оно вложено.Я бы порекомендовал ILDasm или Reflector, если вам нужно найти название.

В окне точек останова в левом верхнем углу находится кнопка меню "создать bp".Один из вариантов - установить bp для имени функции.Когда появится диалоговое окно, снимите флажок с проверки intellisense имени, поскольку у вас нет проекта.Я надеюсь, что это поможет.

Хорошо, если вам нужно окончательное руководство, вот оно:

Настройка Visual Studio для отладки.Исходный код NET Framework

Если вам нужна помощь, продолжайте и расскажите use, какие шаги вы выполнили?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top