プロセスダンプファイルがある場合は、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ユーティリティを使用できます。ダンプファイルを引数として渡すだけです。生成されたレポートで
、あなたは例えば、OSのバージョンやCPUの風味を持っていますが:
Windows 7のバージョン7601(サービスパック1)UP無料のx64
製品: WinNt、スイート:SingleUserTS
* x64が表示されている場合は、x64 OSで撮影されていなければなりませんが、それとは逆のことが当てはまります。 x64システムで実行される32ビットダンプには、x86が表示されます。 –
残念ながら、上記の回答はほとんどの場合うまくいきません。
ターゲットプロセスがx86バイナリとしてビルドされている場合、Dupmchk.exeはx86とx64の両方で "x86互換"と表示されます。そして!!pebコマンドは、ほとんどの場合に使用するミニダンプのために、無駄な "PEB NULL ..."を与えます。
x64 OSが "C:\ Windows \ Syswow64 \ Kernel32.dll"の代わりにをロードするので、代わりに "Kernel32.dll"のフルパスを確認することをお勧めします。 System32 \ Kernel32.dll "を実行します。ロードされたモジュールとそのパスはミニダンプで記録され、dumpchk.exe、windbg、およびVisual Studioで簡単に確認できます。
一部の顧客はプライバシー上の理由からパスを削除したいので、 '.dump/marR'を使用します。 –
これは有効な戦略だとも考えました。それはWindows XPで私のために働いた - Windows 7 ...しかし、Windows 8は物事を変更し、SysWOW64のパスをSystem32にのみmunges。 *私のすべての顧客が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. マシンに最後にログインしたユーザーを確認しますか?
- 2. 特定のマシンでスクリプトが既に実行されているかどうかを確認しますか?
- 3. タスクマネージャーから生成されたプロセスダンプのタイプ
- 4. マシンがチューリングマシンであるかどうかを確認する方法
- 5. AIXマシンがpower7 cpuで実行されているかどうかを確認するには?
- 6. premakeで生成されたプロジェクトファイルを他のマシンに転送
- 7. ブロードキャストパケットがこのマシンから送信されたかどうかを確認するにはどうすればよいですか?
- 8. x86-64マシンのsyscallsのプロトタイプはどこで確認していますか?ある
- 9. WindowsマシンのIDはどのようにして確認できますか?
- 10. x64マシンでMSBuild.Community.Tasks.Attribが失敗する
- 11. Androidデータバインディングライブラリで生成されたコードはどこで確認できますか?
- 12. あるマシンから次のマシンにgitリポジトリをコピーしましたが、今はrepoエラーが発生します。どうすれば修正できますか?
- 13. Web経由でユーザーのマシンにソフトウェアがインストールされているかどうかを確認する方法
- 14. x64マシンのwin32アプリケーションのレジストリ
- 15. arm-linux-xxx-gccでコンパイルしたユーザープログラムは、x86マシン上で動作しますか?
- 16. 管理対象アセンブリがx86、x64またはAnyCPUであるかどうかをプログラムで確認する方法はありますか
- 17. マシンの作成中にドライバでエラーが発生しました。
- 18. X86またはX64のAppID!異なるか同じですか?
- 19. データベースが作成されたかどうかを確認する方法は?
- 20. x86またはx64の逆アセンブラは
- 21. before_saveイベントでモデルが変更または作成されたかどうか確認してください
- 22. ノンブロッキングセンドが成功したかどうかを確認します。
- 23. SQL Serverでマシンが生成したSQLを解析する
- 24. Mac OS XマシンがActive Directoryドメインにバインドされているかどうかをプログラムで確認するにはどうすればよいですか?
- 25. pythonパッケージがリモートLinuxマシンにインストールされているかどうかをプログラムで確認するにはどうすればよいですか?
- 26. Androidは修正されたJavaマシンを実行しますか?
- 27. x86またはx64として実行されているアプリケーション?
- 28. Azure Linux VM(kubernetes cluster)から作成された資格情報を、作成されたマシンとは異なるマシンで取得する方法は?
- 29. ToolTwistポートが外部マシンからブロックされました
- 30. ストアドプロシージャが成功または失敗したかどうかを確認する
関連または潜在的な重複: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 –