Compartilhar via


Segmentos e processos

Threads and processes are related concepts in computer science. Both represent sequences of instructions that must execute in a specific order. Instructions in separate threads or processes, however, can execute in parallel.

Processos existem no sistema operacional e correspondem aos que os usuários vêem como programas ou aplicativos. A thread, on the other hand, exists within a process. Por esse motivo, segmentos às vezes são chamados como processos leves. Each process consists of one or more threads.

The existence of multiple processes enables a computer to perform more than one task at a time. A existência de vários segmentos permite um processo separar o trabalho a ser realizado em paralelo. Em um computador com multiprocessadores, processos ou threads podem executar em diferentes processadores. Isso permite que o verdadeiro processamento em paralelo.

Perfect parallel processing is not always possible. Às vezes segmentos devem ser sincronizados. Um segmento pode ter de esperar um resultado de outro segmento, ou um segmento pode ter acesso exclusivo a um recurso que outro segmento está usando. Synchronization problems are a common cause of bugs in multithreaded applications. Às vezes segmentos podem acabar aguardando um recurso que nunca fica disponível. Isso resulta em uma condição chamada deadlock.

O Visual Studio depurador oferece ferramentas poderosas mas fácil de usar para depuração de segmentos e processos.

Tools for Debugging Threads and Processes in Visual Studio

As principais ferramentas para trabalhar com processos em Visual Studio são o Attach to Process caixa de diálogo, o processos janela e o Debug Location barra de ferramentas. As principais ferramentas para depuração de threads são o segmentos janela, marcadores de thread no windows de origem e o Debug Location barra de ferramentas.

As principais ferramentas para depurar aplicativos multithread são o Paralela pilhas e Tarefas paralelas windows.

A tabela a seguir mostra as informações disponíveis e as ações que você pode executar em cada um desses lugares:

User Interface

Information Available

Actions You Can Perform

Attach to Process dialog box

Available Processes you can attach to:

  • Process name (.exe)

  • Process ID number

  • Menubar Title

  • Tipo (gerenciado na v 4.0; Gerenciado de v 2.0, v 1.1, v 1.0; x86; x64; IA64)

  • User Name (account name)

  • Session number

Selecione um processo para anexar a

Selecione um computador remoto

Alterar o tipo de transporte para se conectar a computadores remotos

Processes window

Attached Processes:

  • Process Name

  • Process ID number

  • Path to process .exe

  • Menubar Title

  • State (Break. Running)

  • Debugging (Native, Managed, and so on.)

  • (Padrão, nativo sem autenticação) do tipo de transporte.

  • O qualificador (computador remoto) de transporte.

Tools:

  • Attach

  • Detach

  • Terminate

Shortcut menu:

  • Attach

  • Detach

  • Detach when debugging stopped

  • Terminate

Threads window

Threads in current process:

  • Thread ID

  • ID gerenciado

  • Categoria (segmento principal, o thread de interface, manipulador de chamada de procedimento remoto ou segmento de trabalho)

  • Thread Name

  • Local onde o segmento é criado

  • Priority

  • Máscara de afinidade

  • Contagem de suspensa

  • Process Name

  • Sinalizador indicador

  • Indicador de suspenso

Tools:

  • Search

  • Pilha de chamadas de pesquisa

  • Sinalizador Just meu código.

  • Seleção de módulos do sinalizador personalizado

  • Agrupar por

  • Columns

  • Expandir/recolher callstacks

  • Expandir/recolher grupos

  • Threads de congelamento/descongelamento

Shortcut menu:

  • Mostrar threads na fonte

  • Alternar para um thread.

  • Freeze a running thread

  • Descongelar um thread congelado

  • Sinalizar um segmento para estudo adicional

  • Remover o sinalizador de um thread.

  • Renomear um thread.

  • Mostrar e ocultar threads

Outras ações:

  • Exibir a pilha de chamadas para um segmento em um DataTip

Janela de origem

Indicadores de thread na esquerda medianiz indicam único ou vários segmentos (desativado por padrão, ativado usando o menu de atalho na segmentos janela)

Shortcut menu:

  • Alternar para um thread.

  • Sinalizar um segmento para estudo adicional

  • Remover o sinalizador de um thread.

Depurar local barra de ferramentas

  • Processo atual

  • Thread atual

  • Quadro de pilha atual

  • Alternar para outro processo

  • Alternar para outro segmento no processo atual

  • Alternar para outro quadro de pilha do thread atual

  • Sinalizar ou remover o sinalizador de segmentos atuais

  • Mostrar somente threads sinalizados

Paralelo pilhas janela

  • Pilhas de chamada para vários segmentos em uma janela.

  • Quadro de pilha ativo para cada segmento.

  • Os chamadores e chamados de qualquer método.

  • Filtrar segmentos especificados

  • Alterne para modo de exibição de tarefas em paralelo

  • Sinalizar ou remover o sinalizador de um segmento

  • Zoom

Paralela de tarefas janela

  • Exibir informações sobre Task objetos, incluindo a identificação da tarefa, status da tarefa (agendado, travado de execução, aguardando,) e o segmento que é atribuído à tarefa.

  • Local atual na pilha de chamadas.

  • Delegate é passado para a tarefa no momento da criação

  • Alterne para a tarefa atual

  • Sinalizar ou remover o sinalizador de uma tarefa.

  • Congelar ou descongelar uma tarefa

Consulte também

Tarefas

Como: Use a janela de processos

Outros recursos

Anexando a processos em execução

Depurando Aplicativos Multithread