프로세스 덤프 파일이있는 경우 x64 시스템이나 x86 시스템에서 덤프가 생성되었는지 여부를 알 수 있습니까?x64 또는 x86 시스템에서 프로세스 덤프가 생성되었는지 확인
답변
환경 변수를 볼 수 있습니다. 명령 !peb
의 출력에는 다른 것들 중에서 환경 변수 목록이 들어 있습니다. 변수 PROCESSOR_ARCHITEW6432
또는 ProgramW6432
이 정의 된 경우 OS는 64 비트입니다. 그렇지 않으면 32 비트입니다.
내가 실행할 때! peb 명령이 PEB NULL을 준다 ... 어떤 생각이 들지? –
덤프에 프로세스 환경 블록 (PEB)이 들어 있지 않음을 의미합니다. PEB는 디버거에서'.dump/mp '또는'.dump/ma' 또는'.dump/mf' 명령을 사용하거나 ADPlus (http://support.microsoft.com/kb/q286350)를 사용할 때 추가됩니다. –
Windows 용 디버깅 도구와 함께 제공되는 dumpchk.exe 유틸리티를 사용할 수 있습니다. 단순히 덤프 파일을 인수로 전달하십시오.
윈도우 UP 무료 7 버전 7601 (서비스 팩 1) 64
제품 : 생성 된 보고서에서
, 당신은 예를 들어, OS 버전과 CPU의 맛을해야합니다 : WinNt, 제품군 : SingleUserTS
* x64가 표시되면 x64 OS에서 실행되었지만 그 반대의 경우는 그렇지 않습니다. x64 시스템에서 32 비트 덤프를 수행하면 x86이 표시됩니다. –
불행히도 위의 답변은 대부분의 경우 작동하지 않습니다.
대상 프로세스가 x86 바이너리로 빌드 된 경우 Dupmchk.exe에서 x86 및 x64 OS 모두에 대해 "x86 호환"이라고 표시됩니다. 그리고! peb 명령은 또한 우리가 대부분의 시간을 사용하는 미니 덤프에 대해 쓸모없는 "PEB NULL ..."을 제공합니다. \ WINDOWS \ : 86 OS는 일반 "C를로드하는 대신하면서"\ WINDOWS \ SysWOW64와 \ Kernel32.dll에서 C "을의 x64 OS가 를로드하기 때문에
당신은 더 나은"Kernel32.dll에서 "의 전체 경로를 확인할 것 System32 \ Kernel32.dll "을 실행하십시오. 로드 된 모듈과 해당 경로는 미니 덤프에 기록되며 dumpchk.exe, windbg 및 Visual Studio에서 쉽게 확인할 수 있습니다.
일부 고객은 사생활 보호를 위해 경로가 제거되기를 원하므로'.dump/marR'을 사용하십시오. –
나는 이것이 유효한 전략이라고 생각했습니다. Windows XP - Windows 7에서 작동했습니다. 그러나 Windows 8은 SysWOW64 경로를 System32로 변경했습니다. 나는 * 모든 * 고객이 Windows 8 + 버전의 32 비트 버전을 실행하고 있다는 것이 이상하다고 생각했습니다 ... – Mark
.effmach 명령을 사용하여 덤프가 작성된 아키텍처를 알 수 있습니다. 덤프 아치가 x64 인 WOW64 시나리오가 있지만 실제로는 x86 접근 방식으로 디버깅해야합니다 (! wow64exts.sw 명령 참조).
0:000> .effmach Effective machine: x64 (AMD64)
'.effmach'는 덤프의 비트를 찾는 데 사용할 수 없습니다. 디버깅에 사용 된 현재 비트를 찾아내는 데만 사용할 수 있습니다. 64 비트 덤프에서'! sw'을 시도한 다음'.effmach'를 시도하면 더 이상 올바른 결과가 표시되지 않습니다. –
당신은 맞습니다.하지만 WOW 된 덤프에서 실행 중이라면! sw 명령 전에 .effmach 명령은 작성자가 질문 한 답변에 맞는 정확한 비트를 반환합니다. 게다가, 지금까지 우리를 따라 간다면, 덤프의 비트를 확실히 알 수 있습니다.) – Shleimeleh
- 1. x86 시스템에서 C# .NET x64 바이너리 컴파일
- 2. MATLAB에서 x64 또는 x86 운영 체제를 실행하는지 확인
- 3. 자바에서 경우의 x86 또는 x64 시스템을 결정
- 4. x86 시스템에서 VS08의 x64 용으로 컴파일하면 바이너리가 생성되지 않습니다.
- 5. RXTX x64 및 x86
- 6. x86 - x64 포팅 쿼리
- 7. 데이터베이스가 성공적으로 생성되었는지 확인
- 8. NOPL은 x86 시스템에서 무엇을합니까?
- 9. NGEN x86 대 .NET 실행 파일이있는 x64
- 10. vb.net 매크로 코드에서 실행중인 프로세스의 유형 (x64 또는 x86) 얻기
- 11. x86 및 x64 스택 프레임
- 12. x86 및 x64 용으로 컴파일
- 13. x86 및 x64 System.Data.SQLite 문제
- 14. Windows 시스템 유형 (x86 또는 x64)을 기반으로 실행 파일 (x86 또는 x64)을 원격 시스템에 복사
- 15. 결과가 MongoMapper에서 새롭게 생성되었는지 확인
- 16. 외부 링크없이 객체가 생성되었는지 확인
- 17. StackOverflowException은 x64 시스템에서 발생합니다. x86에서 제대로 작동합니다.
- 18. 사용할 SQLCMD.exe (x64 또는 x86) - SQL Server 2008?
- 19. MSBuild 부트 스트 래퍼에서 x86 또는 x64 MSI를 실행하십시오.
- 20. 플랫폼 속성을 사용하는 WiX x86/x64 빌드
- 21. NSIS - x64 시스템에서 Java 설치 감지 문제
- 22. x86 x64 코드에서 COM + 서버 액세스
- 23. x86 및 x64 용 .net CLR이 다른가요?
- 24. 설치 프로젝트에서 x64 x86 간의 대량 전환
- 25. x86/x64 변위 주소 지정 추가
- 26. C 언어 용 x86/x64 JIT 어셈블러
- 27. x86/x64 감지 및 올바른 .msi 설치
- 28. x64 비트 프로세서에 x86 어셈블리 작성
- 29. x64 os/플랫폼에서 x86 msi 설치 실행
- 30. Windows XP를 사용하는 x86 win7 시스템에서 x64 응용 프로그램을 빌드하는 방법
관련 또는 잠재적 중복 : https://stackoverflow.com/questions/43308814/is-there-a-windbg-command-to-find-out-if-a-process-is-a -32-bit-one-or-a-64-bit-o –