Descrições de memória de um processo de 32 bits no Windows 7 de 64 bits

3

Eu usei Gerenciador de tarefas (Windows 7, 64 bits) para despejar a memória dos processos do Chrome.

Infelizmente, tentar descarregar um processo de 32 bits usando o Gerenciador de Tarefas (64 bits) gerará despejos de memória sem sentido.

Se eu usar Gerenciador de Tarefas (64 bits) para gerar um despejo de um processo de 32 bits, existe uma maneira de converter a memória já pronta? despejar para que seja devidamente analisado?

Além disso, se você tiver um despejo de memória completo disponível, uma pessoa poderá recriar processos e programas em execução antes da ocorrência da falha?

Edit: Parece que muitas pessoas estão confusas com a minha intenção:

Eu criei despejos de memória de processos do Chrome de 32 bits usando o Gerenciador de tarefas (64 bits) do Windows. Então eu vim para ler artigos que dizem que isso criaria uma versão corrompida do despejo de memória.

O que eu estou querendo saber é, o lixo pode ser lido corretamente com esses despejos?

E também a segunda pergunta.

O que quero dizer corrompido?

De um dos links fornecidos:

If you capture a dump with a tool that captures 64-bit dumps you will still get a memory dump, but you will get a memory dump of the syswow64 which means that a lot of extensions like sos and psscor2 won’t be able to read the data. Some things may still work but it is very limited and you might get errors or erroneous call stacks etc.

Veja também

por MEMDU 28.08.2013 / 14:16

3 respostas

3

Você precisa usar o Process Explorer 15.3 (ou versão superior) do sysinternals que esteja ciente da arquitetura e crie despejos apropriados.

Process Explorer v15.3: This major Process Explorer release includes heat-map display for process CPU, private bytes, working set and GPU columns, sortable security groups in the process properties security page, and tooltip reporting of tasks executing in Windows 8 Taskhostex processes. It also creates dump files that match the bitness of the target process and works around a bug introduced in Windows 8 disk counter reporting.

link

    
por 28.08.2013 / 21:06
1

Não há como converter um tipo de despejo de memória em outro.

E, para qualquer um que esteja se perguntando, você deve executar manualmente o Gerenciador de Tarefas de 32 bits:

C:\Windows\SysWOW64\TaskMgr.exe

se você quiser gerar um despejo de um processo de 32 bits

    
por 07.07.2015 / 19:09
-1

Basta abrir o dump criado no windbg (x86 ou x64) e depois executar o comando: ".effmach x86"

Isso mostrará o contexto do X86 armazenado no arquivo de despejo. Deles em todos os comandos funcionarão no contexto x86.

Minidumps criados pelo TaskManager são sempre de 64 bits. Lembre-se de que todo o processo do Windows executado em um Windows de 64 bits é um processo de 64 bits. É só que quando o seu código é de 32 bits, ele é executado no WindownOnWindows, que envia todas as chamadas de um lado para o outro entre o processo (32 bits) e o sistema operacional (64 bits).

    
por 21.09.2018 / 15:21