Compartilhar via


Demonstra Passo a passo: Depuração de uma solução que inclui código gerenciado e nativo

Esta explicação passo a passo fornece as etapas para depuração uma solução que inclui ambos gerenciado, o .NET Compact estrutura e componentes nativo.Visual Studio não oferece suporte para depuração interop de aplicativos para dispositivos sistema autônomo tal. Ou seja, você não pode ter os depuradores nativo e gerenciado, conectados ao mesmo time.

A técnica recomendada para depuração de uma solução que incorpora elementos nativo e gerenciado é anexar o depurador é necessário para determinada seção, por exemplo, uma seção gerenciada, desanexar que o depurador e, em seguida, anexe o Outros quando o Outros é necessária.Você pode repetir que essas que Desanexar/Anexar etapas várias vezes para percorrer o programa.

Observação:

Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio.

Esta explicação passo a passo foi escrita usando Configurações de desenvolvimento do Visual translation from VPE for Csharp.Ele contém as seguintes seções:

  • Ativando o anexo do depurador gerenciado

  • Iniciar o aplicativo

  • configuração um ponto de interrupção no código nativo

  • Anexar o depurador nativo

  • Em execução para o ponto de interrupção nativo

  • Anexando com o depurador gerenciado

  • configuração um ponto de interrupção no código gerenciado

  • Em execução para o ponto de interrupção gerenciado

  • Conclusão

Pré-requisitos

Esta explicação passo a passo depende da solução baseia-se com outro passo a passo, Demonstra Passo a passo: Olá mundo: Um exemplo de interoperabilidade COM para SMART dispositivos. Certifique-se de que esta explicação passo a passo tem sido construída e executar.

Ativando o anexo do depurador gerenciado

Por padrão, dispositivos, incluindo emuladores, não permita que o depurador gerenciado para anexar a processos que já estão em execução.Anexando o depurador gerenciado a um processo já em execução é uma situação que normalmente encontrados em soluções de dispositivo que incluem o código gerenciado e nativo.

A primeira etapa é conjunto o dispositivo para permitir o depurador gerenciado para anexar a um processo já em execução.Para fazer isso, configuração uma chave do registro no dispositivo.

Observação:

Definir a chave afeta somente anexando a já execução gerenciada processos. Ele não afeta a iniciar um projeto usando Iniciar com depuração (F5).No entanto, se você desconectar após Iniciar com depuração, será necessário esse processo para reanexar e iniciar a depuração novamente.

Para habilitar o depurador gerenciado para anexar a um processo em execução

  1. Sobre o Windows Iniciar , aponte para Todos os programas, point to Microsoft Visual Studio 2008, point to O Visual Studio Remote Toolse, em seguida, clicar Editor do Registro remoto.

  2. No selecionar um dispositivo do Windows CE janela de expandirWindows Mobile 5.0 Pocket PC SDKe, em seguida, clicar Emulador do Windows Mobile 5.0 Pocket PC.Este é o dispositivo de destino para esta explicação passo a passo.

  3. Clique em OK.

    The Conectando ao dispositivo andamento janela é aberta, seguido pela abertura do Device Emulator e o Windows CE remoto Editor do Registro.

  4. No Editor do registro, expandir Emulador do Windows Mobile 5.0 Pocket PC e, em seguida, crie a seguinte chave: Depurador HKEY_LOCAL_MACHINE\SOFTWARE\Microsot\.NETCompactFramework\gerenciado.

    Criar a chave, clique com o botão direito do mouse em .NETCompactFramework, apontando para Novoe, em seguida, clicando em Chave.

    Observe que há um espaço entre "Gerenciado" e "Debugger".

  5. Criar uma DWORD denominada AttachEnabled.

    Criar a DWORD clicando com o botão direito do mouse em Depurador gerenciado, apontando para Novoe, em seguida, clicando em Valor DWORD.

  6. conjunto o Nome sistema autônomo AttachEnabled, and the Valor sistema autônomo 1.

    Observação:

    configuração Esta chave de depurar do dispositivo reduz significativamente o desempenho.Quando você está depurando, desative essa funcionalidade, redefinindo o valor de dados como 0.

  7. Deixe o dispositivo Emulator em aberto para as etapas restantes preservar a configuração do registro.Você pode fechar o Editor do registro.

Iniciando o aplicativo

A próxima etapa é iniciar o aplicativo InteropSolution.

Para iniciar o aplicativo

  1. Abra a solução criada em Demonstra Passo a passo: Olá mundo: Um exemplo de interoperabilidade COM para SMART dispositivos.

    Certifique-se de que Emulador do Windows Mobile 5.0 Pocket PC aparece no Dispositivo de destino caixa na barra de ferramentas.

  2. Sobre o Visual Studio Depurar menu, clicar Iniciar a depuração ou pressione F5.

    Esta etapa imediatamente implanta o projeto nativo, HelloCOMObject, o emulador sem a intervenção do usuário adicionais.

  3. Quando o Implantar SayHello caixa de diálogo é aberta, selecionar Emulador do Windows Mobile 5.0 Pocket PCe, em seguida, clicar Implantar.

    Esta etapa implanta o projeto gerenciado.

    O aplicativo é aberto no emulador.Não clicar ainda no botão.

Definindo um ponto de interrupção no código nativo

Sua próxima etapa é conjunto um ponto de interrupção no código nativo para se preparar para anexar o depurador nativo.

Para conjunto um ponto de interrupção no código nativo

  1. In O gerenciador de soluções, clicar com o botão direito do mouse em Hello.cppe, em seguida, clique em Exibir código.

  2. Inserir um ponto de interrupção na linha que começa *text clicando na margem esquerda do Editor de código.

    O símbolo de ponto de interrupção aparece sistema autônomo um círculo branco com um ponto de exclamação indica que o ponto de interrupção no momento não pode resolver.Isso ocorre porque não possui os símbolos corretos e fontes neste momento.

  3. Sobre o Visual Studio Depurar , aponte para Windowse, em seguida, clicar Módulos.

    The Módulos janela exibe todos os módulos carregados para este ponto, por exemplo, o aplicativo gerenciado SayHello.exe.Observe que HelloCOMObject.dll nativo ainda não foi carregado, porque você ainda não tenha clicado no botão no aplicativo.

Anexando com o depurador nativo

A próxima etapa é separar o depurador gerenciado para que você possa anexar com o depurador nativo.Lembre-se de que ambos os depuradores não podem ser anexados ao mesmo time para projetos de dispositivo.Estas são as etapas que você deseja usar sempre que você precisa comutador entre o gerenciado e o depurador nativo.

Para conectar com o depurador nativo

  1. Sobre o Visual Studio Depurar menu, clicar Desanexar Tudo.

    Esta etapa desanexa o depurador gerenciado, mas permite que o aplicativo para continuar a executar.

  2. Sobre o Depurar menu, clicar Anexar ao processo.

  3. No Transporte box, selecionar dispositivo inteligente.

  4. Para popular o Qualificador clicarProcurar.

  5. No Conectar-se ao dispositivo caixa de diálogo , selecionar Emulador do Windows Mobile 5.0 Pocket PCe, em seguida, clicar Conectar-se.

  6. Para popular o Anexar ao clicarselecionar.

  7. No selecionar o tipo de código caixa de diálogo de de seleçãodepurar these code types, desmarcar o Gerenciado caixa de seleção, selecionar o Nativo caixa de seleção e, em seguida, clicar OK.

  8. No Processos disponível caixa de seleção SayHello.exee, em seguida, clicar Anexar.

    Agora você está conectado com o depurador nativo.

Em execução para o ponto de interrupção nativo

Agora você está pronto para ir para o ponto de interrupção definido em código nativo.Quando você examinar o Módulos janela novamente, você verá módulos nativo apresentar agora.No entanto, HelloCOMObject.dll ainda não está carregada porque você ainda não tenha clicado button1.

Observação:

Se você tiver executado anteriormente nesta explicação passo a passo, símbolos de depurar já podem ser carregados e você pode pular essas etapas.Caso contrário, a seção a seguir lista as etapas para carregá-los.

Para Avançar execução para o ponto de interrupção nativo

  1. No formulário dispositivo Emulator, clicar button1.

    Olá mundo!mensagem aparece no formulário e hellocomobject.dll aparece no Módulos janela.

    Se o Status de símbolo coluna hellocomobject.dll não mostrará Símbolos carregados, siga estas etapas:

    1. clicar com o botão direito do mouse em hellocomobject.dlle, em seguida, clique em Carregar símbolos.

    2. No Encontrar símbolos diálogo caixa, navegar até InteropSolution\HelloCOMObject\Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\depurar\HelloCOMObject.pdb.

    3. Clique em Open.

      The Status de símbolo alterações coluna Símbolos carregados e o indicador de ponto de interrupção agora mostra o ponto de interrupção sistema autônomo resolvido.

  2. No formulário do dispositivo Emulator, clicar OK on the Olá mundo! janela e, em seguida, clicar button1 novamente.

    O indicador de ponto de interrupção mostra que a execução foi interrompida no ponto de interrupção.

  3. Sobre o Depurar menu, clicar Entrar ou pressione F11.

    Observe que a execução se move para a próxima linha.Isso mostra que você pode agora percorrer o nativo seção de sua solução.

Anexando com o depurador gerenciado

A próxima etapa é separar o depurador nativo, para que você possa anexar o depurador gerenciado.Lembre-se de que ambos os depuradores não podem ser anexados ao mesmo time para projetos de dispositivo.Estas são as etapas que você deseja usar sempre que você precise comutador do nativa para o depurador gerenciado.

Para conectar com o depurador gerenciado

  1. Sobre o Visual Studio Depurar menu, clicar Desanexar Tudo.

    Esta etapa desanexa o depurador nativo, mas o aplicativo continua a executar.

  2. Sobre o Depurar menu, clicar Anexar ao processoe certifique-se de que o Transporte caixa contém dispositivo inteligente.

  3. popular o Qualificador caixa clicando em selecionar selecionandoEmulador do Windows Mobile 5.0 Pocket PCe, em seguida, clicando em Conectar-se.

  4. Para popular o Anexar ao clicarselecionar, selecionar depurar these code types, verifique o Gerenciado caixa, desmarcar o Nativo caixa e, em seguida, clicar OK.

    Se for exibida uma mensagem lembrando que a depuração gerenciado e nativo não são compatível, clicar OK.

  5. No Processos disponível caixa de seleção SayHello.exee, em seguida, clicar Anexar.

    Agora o depurador gerenciado está anexado.

Definindo um ponto de interrupção no código gerenciado

Sua próxima etapa é conjunto um ponto de interrupção no código gerenciado para se preparar para anexar o depurador gerenciado.

Para conjunto um ponto de interrupção no código gerenciado

  1. In O gerenciador de soluções, clicar com o botão direito do mouse em Form1.cse, em seguida, clique em Exibir código.

  2. Inserir um ponto de interrupção na linha string text;.

Em execução para o ponto de interrupção gerenciado

Agora você está pronto para ir para o ponto de interrupção definido no código gerenciado.

Para Avançar execução para o ponto de interrupção gerenciado

  • No dispositivo Emulator, clicar button1.

    A execução pára no ponto de interrupção.

Conclusão

Por motivos de desempenho, lembre-se reiniciar a chave do registro de dispositivo 0 quando não é mais necessário que anexar o depurador gerenciado a um processo já em execução.

Consulte também

Tarefas

Como: Anexar a processos dispositivo gerenciado

Como: Alterar configurações de registro do dispositivo

Outros recursos

Depuração dispositivo projetos

Depuração no Visual Studio