2008-09-14 10 views
3

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

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

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

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


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

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

+0

Если все, что вам нужно, это трассировка стека при удалении определенных методов .NET, вам не нужен исходный код. Простое старое окно Breakpoints в Visual Studio может справиться с этим. См. Этот вопрос и ответ: http://stackoverflow.com/questions/2192700/how-do-set-a-breakpoint-on-a-method-within-the-net-framework – jnm2 2013-09-09 18:05:07

ответ

2

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

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

This объясняет получение высвободившиеся части рамки .Net и как установить точки останова в деталях. NetMassDownloader предоставит вам все (pdb и source) в одной загрузке. Но не все исходные коды .Net framework доступны. Если ваш SqlConnection нет, вы всегда можете использовать отладчики IL, как я уже упоминал. И не забудьте Lutz's Reflector, чтобы вы все равно посмотрели на исходный код.

7

Вы можете download .NET source code и установить точку останова прямо в исходном коде .NET FW.

Вы можете использовать NetMassDownloader, чтобы быстро получить источники .NET.

3

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

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

+0

Хех! На этот раз я вас обогнал 8-) – aku 2008-09-14 11:15:28

+0

Черт. 2 раза в 5 минут :). Что такое «лучшие практики» в этом вопросе, должен ли я удалить свой ответ? – Espo 2008-09-14 11:16:54

+0

Мне уже скучно до смерти. ТАК ЗДЕСЬ! – aku 2008-09-14 11:18:23

3

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

3

При отладке источник Defintely лучше, вам не нужны PDB-файлы или источника для отладчика VS установить bp на нужную вам функцию.

Обязательно перейдите в раздел «Инструменты/Параметры/Отладчик» и отключите параметр «Только мой код». Поскольку структура не является «вашим кодом», отладчик бесполезно мешает вам устанавливать там точки останова.

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

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