Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico descreve como o common linguagem tempo de execução (CLR) depuração API trata típicos cenários de depuração. Observe que o CLR oferece suporte a alguns cenários diretamente e interopera com métodos corrente para oferecer suporte a outras pessoas.
Depuração de fora de processo
Na depuração de fora de processo, o depurador está em um processo separado do processo que está sendo depurado (ou seja, é fora o debuggee). Esse cenário reduz as interações entre o depurador e o elemento a ser depurado. Portanto, ele permite que um quadro mais preciso do processo.
API de depuração CLR oferece suporte a depuração diretamente fora de processo. A API trata todas as comunicações entre o depurador gerenciadas partes e da ser depurado para oferecer suporte à depuração de código gerenciado.
Embora o CLR API de depuração é usada fora de processo, parte da lógica depuração (por exemplo, thread sincronização) ocorre em processo com o elemento a ser depurado. Na maioria dos casos, isso é um detalhe de implementação deve ser transparente para o depurador. Para obter mais informações sobre sincronização de threads, consulte Arquitetura de depuração CLR. Uma desvantagem é que a API de depuração não pode ser usada para inspecionar os despejos de memória quando ele é usada fora de processo.
Depuração no processo
Nas versões do .NET estrutura 1.0 e 1.1, o CLR depuração API suportada limitado em processo de depuração, no qual um criador de perfil poderia usar os recursos de inspeção da API de depuração. No .NET estrutura 2.0, a depuração em andamento foi substituído com um conjunto de funcionalidade que é mais consistente com a API de criação de perfil. Para obter mais informações sobre essas alterações, consulte o instantâneo da pilha and objeto de inspeção recursos o Visão geral de criação de perfil.
Depuração remota do processo
No processo remoto de depuração, a interface do usuário do depurador estiver em um computador separado do processo que está sendo depurado. Esse cenário pode ser útil se o depurador interferir com o elemento a ser depurado quando eles estão executando no mesmo computador, por causa de recursos limitados, dependências de local ou bugs que interferem com o sistema operacional.
API de depuração CLR não oferece suporte ao processo remoto de depuração diretamente. Um depurador que se baseia na API de depuração CLR ainda deve existir fora de processo da ser depurado. Portanto, essa solução requer um processo de proxy no mesmo computador com o elemento a ser depurado.
Depuração de código não gerenciado
Porque o código gerenciado pode coexistir no mesmo processo sistema autônomo código não gerenciado, com freqüência o usuário desejará sistema autônomo dois tipos de código de depurar ao mesmo time.
API de depuração CLR não oferece suporte a código não gerenciado, depurando diretamente. No entanto, eles podem coexistir com um depurador de código não gerenciado, compartilhando os recursos de depuração do Win32. Além disso, recursos são fornecidos para oferecer suporte a depuração através dos limites entre código gerenciado e.
Além disso, o API de depuração do CLR fornece duas opções para um processo de depuração:
A Anexar suaveopção de apenas no qual o gerenciado partes do processo são depurados. Um depurador soft-anexado a um processo, em seguida, poderá desanexar do processo.
A disco rígido de conexão opção em quais ambas as partes gerenciadas e de um processo são depuradas e todos os eventos de depurar do Win32 são expostos por meio da API de depurar.
Ambientes de linguagem misto
No componente de software, componentes diferentes podem ser criadas com idiomas diferentes. Um depurador deve compreender quando o código está em um linguagem diferente para que possa exibir dados no formato correto, avaliar expressões com a sintaxe correta e assim por diante.
API de depuração CLR não fornece qualquer suporte direto para ambientes de linguagem misto, pois o CLR não tem nenhum conceito de linguagem de fonte. Fonte existente do depurador instalações de mapeamento deve ativá-lo para mapear uma determinada função para o linguagem no qual a função foi implementada.
Vários processos e programas distribuídos
Um programa do componente pode incluir componentes de cooperação que são executados em diferentes processos ou até mesmo em computadores diferentes em uma rede. Um depurador conseguirá a lógica de execução de rastreamento entre os processos e computadores para fornecer que uma exibição lógica do que está acontecendo.
API de depuração CLR não fornece qualquer suporte direto para depuração de processo múltiplos. Novamente, um depurador que está usando a API deve oferecer esse suporte diretamente, e os métodos existentes para fazer isso devem continuar a trabalhar.