windbg6 による rtx5.5 デバッグ
DESCRIPTION
WinDBG6 による RTX5.5 デバッグ. 232C クロスケーブル. RTX5.5 がインストールしてある デバッグターゲット PC. 2004.Jan.08 T.Sato. RTX 開発環境 WinDBG6.0 シンボル、ソースファイル. debug モードで起動 デバッグビルドの .rtss をコピーして実行させる. WinDBG (必須)と WindowsSymbol (任意)のダウンロード (WinDBG は MSDN の DDK にも入っています ). - PowerPoint PPT PresentationTRANSCRIPT
WinDBGによるRTX5.5デバッグ
1
WinDBG6による RTX5.5デバッグ
2004.Jan.08 T.Sato
debugdebug モードで起動 モードで起動 デバッグビルドの デバッグビルドの .rtss.rtss をコピーして実行 をコピーして実行させるさせる
232C232C クロスケーブクロスケーブルル
RTXRTX開発環境開発環境WinDBG6.0WinDBG6.0シンボル、ソースファイシンボル、ソースファイルル
RTX5.5がインストールしてあるデバッグターゲット PC
WinDBGによるRTX5.5デバッグ
2
WinDBG (必須)と WindowsSymbol (任意)のダウンロード
(WinDBG は MSDN の DDK にも入っています )
• http://www.microsoft.com/whdc/ddk/debugging/default.mspx
WinDBGによるRTX5.5デバッグ
3
Symbolのインストール(任意)RTXデバッグのみであれば不要
WinDBGによるRTX5.5デバッグ
4
デバッグ対象 RTSSプログラムをデバッグビルド
• ソースコードに _asm int 3; を入れ Debug build• ビルドした .rtss をターゲット PC にコピー(場所はどこでも可)
ターゲットの RTXプロパティ設定:RTXコントロールパネルでカーネルデバッガを選択
RTXプロパティの設定(ターゲット側)
WinDBGによるRTX5.5デバッグ
5
Windbg の設定(ターゲット側)
ターゲットとホストをクロスケーブルで接続、同じ COM ポート番号を使う
例)ターゲット COM1 ホスト COM1
ターゲットの boot.ini に以下を追加スペルミスに注意/DEBUGPORT=COM1 /BAUDRATE=115200例:[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional DBG" /DEBUGPORT=COM1 /BAUDRATE=115200
WinDBGによるRTX5.5デバッグ
6
Windbg の設定WinDBG の各ファイルパスを指定(例)
WinDBGによるRTX5.5デバッグ
7
Windbg の設定(具体例)
[Symbol file path] プログラムのデバッグビルドで生成された .pdb が存在するパス(必須)RTX のシンボルが存在するパス(必須)Windows のシンボルパス(必須ではないが Windows アプリをデバッグする場合は
必要)
C:\Program Files\Microsoft Visual Studio\MyProjects\dbg_test\dbg_test___Win32_RTSS_Debug;
C:\Program Files\VenturCom\RTX SDK\symbols;C:\WINDOWS\Symbols (またはインターネット上のデバッグシンボルを指定)
[Source file path]デバッグするプログラムのソースファイルがあるパスC:\Program Files\Microsoft Visual Studio\MyProjects\dbg_test
[Image file path]デバッグするプログラムのデバッグビルドの実行ファイルがあるパスC:\Program Files\Microsoft Visual Studio\MyProjects\dbg_test\dbg_test___Win32_RTSS_D
ebug
WinDBGによるRTX5.5デバッグ
8
ターゲットとWinDBG接続-WinDBG のファイルメニュー – カーネルデバッキングで通信速度を 115
200 に設定、 Port を 1 に設定し OK ボタンを押す ( COM1 と入力せず、単純に 1 と入力する)この状態で WinDBG
は 接続待ちの状態になっている- ターゲットをデバッグモードで起動-WinDBG 側にはターゲットのブート状態が表示され、起動完了 ワークスペースを保存するかの問い合わせが出るが、通常は Yes ( 2
回)- ここでターゲット側のデバッグ用アプリケーションを起動すると、最初
のブレークポイント _asm int 3 で停止する。 この状態でブレークポイントが設定可能になる-G コマンドで再開ブレークポイントの設定や解除、変数の Watch などは普通のアプリのデ
バッグと同様。
WinDBGによるRTX5.5デバッグ
9
Breakpointがヒットしたところは赤から色が変わる
WinDBG 自体の詳細な使い方は DDK を参照して下さい。市販の書籍で、 Windows XP デバイスドライバプログラミング[入門と実践]にも WinDBG の使い方が記載されています。http://www.gihyo.co.jp/books/syoseki-contents.php/4-7741-1841-9