Como posso encontrar um chamador método quando percorrendo C # no Visual Studio 2008?
-
22-07-2019 - |
Pergunta
Se eu definir um ponto de interrupção em um método, como posso ver o que chamado o método, quando o ponto de interrupção é atingido no Visual Studio 2008?
Solução
Verifique a janela Call Stack (Debug, o Windows, Call Stack). Clicando duas vezes cada entrada não irá levá-lo para a declaração chamando. Você também pode clique direito sobre ele para ativar / desativar mostrando itens de código externos e chamadas de outros tópicos.
Outras dicas
Se você não pode ver nada na pilha de chamada em um ponto de interrupção do usuário set , que geralmente significa que foi chamado de código nativo.
Outro caso em que não é possível obter uma pilha: Você bateu Debug> Break Todos e o segmento principal está em um estado de espera / sleep, o depurador pode ter problemas para construir a pilha de chamadas. Eu acredito que o depurador usa o segmento principal para sua avaliação da função implícita.
Tente ligar (ou lançar) o modo misto (nativo e gerenciado) depurador de código e ver se isso endireita-lo.
Quando o ponto de interrupção é atingido, você pode ver toda a pilha de chamadas. Você pode trazer essa janela para cima passando pelo Debug menu-> Windows-> Chamada Stack.
Você também pode levá-la pelo atalho Alt + Ctrl + C
EDIT: Você também pode botão direito do mouse no nome de uma função, e ver o "chamadores Graph", que irá mostrar-lhe todos os chamadores para o seu método. Alternativamente, você pode trazer o navegador Call (indo até Ver-> Outros Windows-> Navegador de chamadas) e procurar o nome do seu método.
Se você não pode ver nada na janela Call Stack, então há definitivamente algo de errado. Gostaria de sugerir a famosa seqüência de R acções:
- Repetir
- Recompile
- Restart
- reinstalar o:)
Se o ponto de quebra é em uma função que é gerado por um evento, você pode não ter um back pilha de chamada direta para o chamador, e terá de permitir visualizar todo o código, e não apenas "apenas meu código".