Alguém me pediu para pegar umpilha de chamadasourastreamento de pilhade um processo em execução para que ele pudesse analisá-lo para mim.
Como posso obter essa informação?
Responder1
PegarExplorador de processos.
HabilitarMostrar detalhes de todos os processosdeArquivocardápio:
No painel principal, selecione o processo de seu interesse:
Abra o menu de contexto (clique com o botão direito) para o processo selecionado e clique emPropriedades:
NoTópicosguia, você poderá ver uma lista dos threads em execução dentro desse processo:
Selecione o tópico de seu interesse e clique no botãoPilhabotão:
O Process Explorer agora exibirá a pilha de chamadas atual para o thread selecionado:
Símbolos
Se a sua solução de problemas exigir que você obtenha mais detalhes, geralmente é muito útil carregar a depuraçãosímbolosno Process Explorer. É assim:
Se você ainda não possui um depurador do Windows instalado, precisará instalar oFerramentas de depuração para Windowsprimeiro.
No Process Explorer, abraConfigurar símbolos...deOpçõescardápio:
Se você tiver as ferramentas de depuração (ou outro depurador do Windows) instaladas, o Process Explorer encontrará o
dbghelp.dll
arquivo automaticamente. Caso contrário, defina o caminho correto aqui.OCaminho dos símbolosdeve ser algo como:
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
A única parte que você deseja ajustar é
C:\Symbols
. Esse é o local onde os símbolos de depuração serão armazenados em cache.
Responder2
Se você precisar de uma pilha de processos clr, poderá usar o ProcInsp (sou o desenvolvedor, a ferramenta é de uso gratuito).
- InstalarProcInsp
- Encontre o processo de seu interesse e clique nele
- Clique no thread (observe que o ProcInsp mostra o ponto de entrada do aplicativo como o nome do thread - ele pula todos os frames da infraestrutura .net)
- O rastreamento de pilha com o ponto de entrada destacado é mostrado