Pergunta

Eu tenho um serviço do Windows dotnet que atualmente está pendurado, mas correndo. Existe uma maneira de anexar um depurador a ele, apesar da falta de símbolos; e que já está sendo executado?

Foi útil?

Solução

Ignorar o aviso "há símbolos". Depois de ter um depurador nativo anexado (i preferem WinDbg para coisas como esta), em seguida, carregar o pacote de ferramentas SoS:

.loadby sos mscorwks

Agora você pode obter um callstack gerenciados usando o comando !clrstack, e esperança que lhe dá informações suficientes para descobrir o jeito. Aqui está um prático cábula com alguns outros se isso não fazer isso por você.

Não vai ajudá-lo neste momento, mas ... adquirir o hábito de ligar a geração de arquivo símbolo para depuração e -mode compilações. Não há nenhuma razão para não, e ele vai fazer a sua vida um pouco mais fácil em situações como esta.

Outras dicas

De IDE MS dev Debug -> Processos -> Anexar (Depois de escolher um processo.) Você pode ter que clicar na caixa "Mostrar processos do sistema". Pode haver nenhuma informação útil embora ...

Aqui está o código de exemplo, links para ferramentas, e apresentações sobre como depurar um processo .NET hung .

Você provavelmente também quer assistir este apresentação de vídeo, que apresenta as mesmas ferramentas e amostras. Apesar do texto em língua sueca na página da web, o vídeo está em Inglês.

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