Rodrigo Strauss :: Blog
Palestra do Quinto Encontro: Process Explorer
Aos que não acompanham a lista de discussão e o site do nosso glorioso http://www.ccppbrasil.org, foi realizado no sábado passado o Quinto Encontro de Programadores C e C++, no espaço cedido pela Microsoft Brasil. Para fazer as honras ao anfitrião e saciar minha vontade de falar sobre os softwares que me salvam a pele todos os dias, falei sobre as ferramentas de apoio à programação, debug e diagnóstico na plataforma Windows.
Como uma palestra de 1:15hs (um pouco menos se consideramos o problema no som...) não é nem de longe suficiente para explicar todas as ferramentas, vou explicá-las melhor aqui no meu recentemente abandonado blog. Aos que esperam o prosseguimento da série de Win32, vamos esperar a Apple devolver meu carregador que foi para garantia e nunca mais voltou, assim eu consigo recuperar o fonte dos próximos posts. Bom chega de choramingar, daqui a pouco vou começar os posts com "meu querido diário"...
A primeira ferramenta que eu mostrei, e de longe a mais útil é o Process Explorer, o Task Manager vitaminado da Sysinternals:


Principais usos:
- Visualizar processos em árvore: Isso possibilita saber facilmente qual processo iniciou outro processo. CTRL+T
- Finalizar uma árvore de processos: Muitos programas (setups geralmentes) criam vários processos filhos que fazem o mesmo, ficando difícil finalizar todos os processos criados. Um SHIFT+DEL no processo pai resolve esse problema, matando sem remorso o processo pai e toda sua família.
- Mostrar indicadores detalhados de memória: A pergunta "quanto de memória esse processo está usando?" é vaga e subjetiva. Clicando com o botão direito no header da lista com os processos aparece a opção "Select Columns...". Na aba "Process Memory" encontramos os indicadores detalhados de memória, como "Private Bytes" e "Working Set". Mais detalhes sobre isso no material da minha palestra "Por Dentro do Windows: Gerenciamento de Memória" (que eu já ministrei 3 vezes e se me convidarem eu faço de novo, gosto bastante desse assunto)
- Saber qual processo está mantendo um determinado arquivo aberto: CTRL+F, digite o nome do arquivo. Você verá uma lista dos processos que mantém handles abertos para esse arquivo.
- Visualizar quais conexões TCP/IP o processo mantém: Duplo clique no processo, depois aba TCP/IP.
- Resumo do status do sistema (consumo de processador, memória, I/O, etc): CTRL+I ou menu View >> System Information. Apesar de parecer com a janela do Task Manager, nessa janela temos informações também sobre o I/O total do sistema, além de mais um monte de coisas.
- Descobrindo qual processo criou uma determinada janela: Arraste o último botão da barra de ferramentas (um alvo) para cima da janela. O processo dono será selecionado. Muito útil para descobrir qual dos programas inúteis do fabricante do seu notebook estão ativando aqueles insuportáveis popups. Ou qual das 15 instâncias do seu programa deve ser debugada depois de mostrar um MessageBox(NULL, "Passou por aqui!!!", "DEBUG", MB_OK);.
- Descobrir quais serviços rodam em uma instância do svchost.exe: Muitos serviços nativos do Windows são implementados como DLLs que rodam dentro de um dos inúmeros processos do svchost.exe. Abra as propriedades de um processo (duplo clique ou botão direito e "Properties"), você verá uma aba "Services" com a lista.
- Descobrir quais processo são do usuário XYZ: Na tela de seleção de colunas, existe uma coluna "User name" na aba "Process Information".
- Lista de todos os handles (arquivos, sockets, chaves de registro mutexes, events, etc) de um processo: CTRL+H.
- Listar DLLs carregadas por um processo: CTRL+D. Botão direiro + opção "Properties" na DLL e você vê o caminho completo da DLL, sua versão e o nome do fabricante/fornecedor.
- Ver os processos que mais consomem CPU: Na lista de colunas, aba "Process Performance", escolha a coluna "CPU Time", que mostra o total de tempo de processador que o processo já consumiu desde seu início. Útil para quem quer economizar bateria do notebook. Ou descobrir qual dos 19 antispywares que seu usuário instalou estão monopolizando a CPU e não deixando muito espaço para sua aplicação (que o usuário gentilmente chama de "carroça").
- Iniciar o Process Explorer minimizado no "tray" na inicialização do Windows: Crie um atalho do Explorer para o comando "procexp.exe /t" e coloque-o em Start Menu >> Programs >> Startup.
Mais sugestões nos comentários serão bem vindas e muito úteis para quem ler esse post no futuro. E torçam para o deus/santo/padroeiro/entidade/orixá/sei-lá-o-que da organização (deve existir um) me ajude a separar mais tempo para escrever no blog, pois eu realmente gosto de fazer isso...
Em 09/10/2008 05:55, por Rodrigo Strauss





Acho que melhor que colocar no startup, é trocar o padrão do windows pelo Process Explorer:
Options -> Replace Task Manager
Já uso ele faz uns meses e é uma mão na roda.