Como obter uma pilha de chamadas completo no Visual Studio 2005?
-
02-07-2019 - |
Pergunta
Como posso obter uma pilha de chamadas completa para um c ++ aplicativo desenvolvido com o Visual Studio 2005? Eu gostaria de ter uma pilha de chamadas completo, incluindo o código nas bibliotecas do sistema.
Eu tenho que alterar algumas configurações no Visual Studio, ou eu tenho que instalar software adicional?
Solução
-
Obter informações de depuração para todas as dependências do projeto. Esta é especificada no "Propriedades de Configuração -> C / C ++ -> Geral". Seção das propriedades do projeto
-
No menu, vá para "Ferramentas -> Opções", selecione "Depuração -> Símbolos".
-
Adicionar um novo local símbolo (o ícone da pasta) que aponta para servidor símbolo livre da Microsoft “symsrv Symsrv.dll c: \ símbolos * http://msdl.microsoft.com/downloads/symbols “
-
Preencha a "símbolos cache" de campo com algum lugar localmente para que você não ir para a internet o tempo todo.
Outras dicas
Concordo com Clay, mas por símbolos Server, você deve obter as últimas SymSrv.dll de "Debugging Tools for Windows", a Microsoft download gratuito.
(Uma vez que você pediu explicitamente o que você precisa para download, eu presumo que você não tem ainda)
Ou, opcionalmente (assumindo que Visual Studio não está instalado), pegue uma cópia do Windows Debugging Tools , instalar e quer executar seu aplicativo de dentro do depurador (windbg.exe) ou tê-lo anexar a um aplicativo em execução:
windbg [.exe] pn program.exe
ou
windbg [.exe] -p process_id
Break no depurador no ponto em que deseja observar para rastreamento de pilha (Ctrl + Break). Mudar para o fio de interesse (muito provavelmente o principal segmento de execução):
~ 0s
Corrija-se símbolos de módulos do sistema (e provavelmente para o aplicativo, bem como se disponível):
* Fix-se símbolos para aplicação
.sympath path_to_app_symbols
* configure onde depurador irá baixar e sistema de armazenamento de símbolos
.symfix + path_where_system_symbols_will_be_stored
* força depurador para símbolos de recarga
.reload
Emita um comando pilha de chamadas:
kb