Pergunta

Eu tenho uma biblioteca de terceiros que constrói e usa internamente a classe SqlConnection.Posso herdar da classe, mas ela tem muitas sobrecargas e até agora não consegui encontrar a certa.O que eu gostaria é adicionar um parâmetro à cadeia de conexão que está sendo usada.

Existe uma maneira de colocar um ponto de interrupção no próprio núcleo da biblioteca .NET?Especificamente nos construtores da classe SqlConnection, para que eu possa observar o rastreamento de pilha e ver onde ele está realmente sendo construído?

Exceto isso, existe alguma outra maneira de fazer isso?

Especificamente, o que pretendo fazer é abordar a questão Nome da Aplicação parâmetro, para que nossa aplicação seja mais facilmente identificada no servidor ao observar as conexões.


Editar:Bem, parece que preciso de mais ajuda.Acho que habilitei tudo relacionado ao suporte ao servidor de símbolos e percebi que o diretório que configurei está cheio de diretórios que contêm arquivos .pdb.Ainda assim, não consigo disponibilizar a fonte real da classe SqlConnection.

Existe algum guia definitivo sobre como fazer isso com sucesso?

Foi útil?

Solução

E se você não puder usar a depuração em nível de origem com o código-fonte da estrutura .Net fornecido pela Microsoft, você pode tentar um depurador diferente.Como mdbg ou mesmo windbg.

editar

Esse explica detalhadamente como obter as partes lançadas do framework .Net e como definir pontos de interrupção.O NetMassDownloader fornecerá tudo (pdb e fonte) em um download.Mas nem todo o código-fonte da estrutura .Net está disponível.Se o seu SqlConnection não for, você sempre poderá usar depuradores IL como os que mencionei.E não se esqueça do Refletor de Lutz para dar uma olhada no código-fonte de qualquer maneira.

Outras dicas

Você pode baixar o código-fonte .NET e defina o ponto de interrupção diretamente no código-fonte do .NET FW.

Você pode usar NetMassDownloader para obter fontes .NET rapidamente.

De acordo com este artigo você pode baixar o código-fonte do .NET framework e depurá-lo usando o visual studio:

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

Quase esqueci de mencionar Debletor - é um plugin Reflector, que permite depurar quase qualquer aplicativo .net sem códigos-fonte :)

Embora a depuração de origem seja definitivamente melhor, você não precisa de pdbs ou fonte para o depurador VS definir um bp na função desejada.

Certifique-se de ir em Ferramentas/Opções/Depurador e desligar a opção chamada "Just My Code".Como a estrutura não é 'seu código', o depurador impede que você defina pontos de interrupção lá.

Em seguida, você precisa do nome completo do método conforme aparece nos metadados.Isso inclui quaisquer namespaces em que esteja aninhado.Eu recomendaria ILDasm ou Reflector se você precisar encontrar o nome.

Na janela de pontos de interrupção no canto superior esquerdo há um botão de menu "novo bp".Uma das opções é definir um bp no nome da função.Quando a caixa de diálogo aparecer, desmarque o intellisense para verificar o nome, pois você não tem um projeto.Espero que isso ajude.

OK, se você quiser um guia definitivo, aqui está:

Configurando o Visual Studio para depurar código-fonte do .NET Framework

Se você quiser ajuda, vá em frente e diga quais etapas você executou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top