Doc ID: |
14 |
製品: |
DriverBuilder |
Version: |
-- |
VxWorks で Debug Monitor ユーティリティをどのように使用しますか? |
VxWorks では、wddebug.out ユーティリティを使用してください。Windows、Solaris、Linux
などの wddebug コマンド ライン ユーティリティの使用方法と似ています (テクニカル
ドキュメント #13)。VxWorks には、GUI バージョンはありません。
以下の手順で行ってください:
- メモリに、プログラム wddebug.out をロードします。
- wddebug_main を呼びます。
- 以下の引数で、wddebug_main を呼びます:
wddebug_main "on", "trace", "all"
これで、Debug Monitor が有効になります。
- wddebug_main dump を呼びます。
ENTER を押下するまで、プログラムは連続してデバッグ メッセージをダンプします。(ENTER を押下するまで) シェル プロンプトは返ってこないので、ターゲットと動作するには新しいシェルを開始する必要があります。
wddebug.out のソース コードは: DriverBuilder/samples/wddebug/wddebug.c. にあります。
デバッグ ユーティリティを正しく使用するには、ソース コードをアプリケーションに追加 (もちろん、ソースコードの main() 関数の名前を変更); もしくはできれば、デバッグ ユーティリティを有効にするには、以下の2つの関数の定義をコードに追加し、main() 関数からその関数を呼びます:
int debug_start()
// Call this function after the call to
// drvrInit(), in order to instruct the
// kernel to start sending debug messages:
{
WD_DEBUG debug;
HANDLE hWD = WD_Open();
if(hWD==INVALID_HANDLE_VALUE)
return -1;
BZERO(debug);
debug.dwCmd = DEBUG_SET_FILTER;
debug.dwLevel = D_TRACE;
debug.dwSection = (DWORD)S_ALL;
WD_Debug(hWD, &debug);
return 0;
}
int debug_dump()
// Call this function at the end of main(),
// after the system as booted and you get
// your shell. This function causes the debug
// messages that have been sent to be displayed
// of in the debug log:
{
WD_DEBUG_DUMP debugDump;
char buf[2048];
HANDLE hWD = WD_Open();
if(hWD==INVALID_HANDLE_VALUE)
return -1;
BZERO(debugDump);
debugDump.pcBuffer = buf;
debugDump.dwSize = sizeof (buf);
WD_DebugDump(hWD, &debugDump);
printf("%s", debugDump.pcBuffer);
return 0;
}
|
|