プログラミングに使う開発環境、ツール類について まとめておきます。 単なる備忘録兼リンク集です。 (たまにはこういった気軽なテーマもいいのでは、と。)
MSDNはMicrosoft Developer Networkの略です。 MSDNと言った場合、2種類のニュアンスがあります。 ひとつはMicrosoftが開発者向けに有償でソフトウェア類を提供しているサービス(サブスクリプション)の名称、 もうひとつはMicrosoftのWeb上で無料で閲覧できるWindowsプログラミングに関連する資料一式の総称です。
MSDN Home Page以下で述べるVisual StudioやSDK, DDKなどはMSDNに加入すれば、入手可能です。 惜しむらくは、値段が高いことです。(プロフェッショナル・サブスクリプションで年間9万円弱)
Visual Studioとは、アプリケーション開発・構築用の統合環境です。 有料で販売されています。 コンパイラ、アセンブラ、リンカ、デバッガ、エディタなどから構成されています。 本稿執筆時の最新版はVisual Studio .NET 2003で、使える言語は、Visual Basic、 Visual C++、Visual C#、Visual J#です。
Visual Studio ホームページVisual C++ Toolkitとは、Microsoftが無償で公開・配布しているC++コンパイラ一式です。 BorlandのC++ Compilerに対抗して公開したのだろうと思います。
Visual C++ Toolkit 2003Platform SDKとは、(主として)Windows用のアプリケーションを構築するために必要なソフトウェア・ドキュメント一式です。 SDKはSoftware Development Kitの略です。 コンパイラ、アセンブラ、リンカはもちろんのこと、ドキュメントも入っています。 これも無償で入手可能です。 ただ残念なのは、ベータ版等の最新版はbeta placeかMSDNでないと入手できないことです。
Platform SDK Update <- IEで開くことDDKとはDriver Developmet Kitの略で、Windows用のドライバーを開発するために必要なソフトウェア・ドキュメント一式です。 これはCDを実費で入手する形になりますが、SDK同様にベータ版等の最新版はbeta placeかMSDNでないと入手できません。
Windows Driver Development KitWinDbgとは、Windows用ソフトウェアのデバッガです。 無償で入手可能です。 アプリケーションだけでなく、カーネルモードで動作するドライバー類もデバッグ可能です。 なお正確には、アプリケーション・ソフトウェアのデバッガはCDB、NTSDといい、 カーネルモード・ソフトウェアのデバッガはKDといいます。 WinDbgはそれらのGUIバージョンの総称です。
Debugging Tools for WindowsVisual StudioのデバッガでなくWinDbgを使うと多くのメリットがあります。 まずカーネルモードでのデバッグができることです。 カーネルモードでのデバッグはリモートデバッグで行います。 この場合、2台のPC(ホストPCとターゲットPC)をケーブル(クロスタイプのシリアルケーブルかIEEE1394ケーブル)で接続し、 カーネルモード・ソフトウェアをターゲットPC(OSがクラッシュしてもいいようなPC)で動作させます。 バグなどの原因によりカーネルモードでOSがクラッシュすると、ホストPC側にクラッシュした箇所の情報(逆アセンブルなど)が表示され、 さらにホストPCからのコマンド一発でターゲットPCを再起動させることもできます。(これがかなり楽しい。) カーネルモードからでないとアクセスできないレジスタ類、例えばGDTR、LDTR、IDTRなども自由に見られますし、 MSRも自由にRDMSR/WRMSRできます。(未定義MSRにRDMSRしても、OSはクラッシュしません。) もちろんセグメント・ディスクリプタのセレクタに関する情報も見られます。 (なおリモートデバッグはカーネルモード・ソフトウェアだけでなくアプリケーション・ソフトウェアのデバッグでも 使うことができます。)
もうひとつのメリットは64ビットプロセスのデバッグ(正確には64ビットプロセスへのアタッチ)ができることです。 本稿執筆時のVisual Studio 2005 betaはこれができなかったので、WinDbgを使いました。
最終更新日:2005年1月3日(月)