| |||||||||||||||||||||||||||||
サイト内検索
カスタム検索
|
WOW64 上でのデバッグ [1/2] ~ WOW64 とは何か?WOW64 とは?Windows では 64 ビットのクライアント OS は Windows XP で初めてリリースされました。 ただし、これは IA64 (Intel Itanium プロセッサ) アーキテクチャ向けでした。 その後、本格的に 64 ビットが広まったのは AMD の 64 ビットアーキテクチャが広まってからで、 インテルも同様のアーキテクチャを採用しました。現在普通に 64 ビットといえばこちらで、 これを x64 アーキテクチャといいます。(もともと AMD 発祥なので amd64 等とも書きますが、 MS はたいてい x64 と書きます) ちなみに、32 ビットの主流は x86 です。(x32 ではありませんので注意してください) x64 は Vista で広まり、最近ではすっかりパソコン・ショップの店頭では 64 ビット (x64) Windows が主流になってきています。 基本的に 64 ビット OS では 64 ビット向けのプログラムしか実行できません。 つまり、従来の 32 ビット (x86) 向けに作られたプログラムは実行できないのです。 そこで、Windows-On-Windows エミュレーション・サブシステム (WOW64) が必要になります。 WOW64 は 64 ビット OS で 32 ビット向けのプログラムを実行可能にします。 32 ビットの環境向けに作られたプログラムを実行する場合は、始めに WOW64 サブシステムがロードされます。 主要なライブラリは ntdll.dll、WOW64.dll、WOW64Win.dll、WOW64Cpu.dll などです。 これらによって、32 ビットの命令を 64 ビット環境で解釈できるように変換するのです。
つまり、64 ビット OS で実行するにはあくまで 64 ビットの環境をターゲットとしてプログラムを作らなければならないのですが、 32 ビット向けに作られたプログラムも x64 上で動くように WOW64 が間に入り、プログラムの実行を可能としています。
結局上図のように、64 ビット OS で 32 ビットコードを実行させた場合、 同一プロセス内に WOW64 と x86 向けのコードが共存する形になります。 前置きは以上です。では、実際に WOW64 上のコードをデバッグする場合にどうしたらよいか見てみましょう。 | ||||||||||||||||||||||||||||
© 2008-2010 小山圭介 All Rights Reserved. |
|||||||||||||||||||||||||||||