タグ

2008年2月10日のブックマーク (3件)

  • OutputDebugStringとDbgPrint - firewood's diary

    VistaでDbgViewを起動すると大変なことになる(デバッグ情報の出力レベルが最大になり画面が埋め尽くされた挙句ハングアップ)という記憶があって、今は違うだろうと思いDbgView(DebugView)の最新版を取りに行ったら、なんとSysInternalsがMicrosoftに買収されていた。 非公開のAPIでもがんがん解析してやるぜ的なイメージがあったので、良い子ちゃんになってしまって少しさびしかったり。 でVista(x64)で試してみたらdbgv.sysにアクセスできませんと言われてカーネルのデバッグ出力が取れなかった。ちなみに大量にメッセージが出たのはたぶんRC1の時点の話で、正式版では違うようだ。 昨日のプレゼンで「OutputDebugStringとDbgPrintは同じI/F」とてきとーな書いたのだけど、どうやらあまり正確ではなかった。 仕組みとしては「\device\

    OutputDebugStringとDbgPrint - firewood's diary
  • Win32デバッガの作り方

    戻る 16ビットアプリケーションでは,簡単なデバッグを行うとき,Win16 API OutputDebugString でログを出力させ,Windows3.1 SDK 付属の "DBWin" アプリケーションでログを表示させることができました. しかし,Win32 では,OutputDebugString が出力するログを表示させる方法は, デバッガ以外にありません. しかし,デバッガ(Deveroper Studio や Win32 SDK 付属の WinDbg)は, Win32 API OutputDebugString を含むデバッグイベントを受信すると,デバッガに フォーカスが移動することがあるため,ウィンドウのメッセージのトレースを行う ときには大変困ります.そこで,32ビット版 DBWinを作成して,OutputDebugString を表示できるツールを作成して,デバッグログ

  • DeviceIoControlについて - 窓のプログラミング

    フィルタドライバ内のDbgPrintをアプリケーション側で受け取りたいと思い,とりあえずDebugView.exeの動作を解析することに。 ただ流石にディスアスするのは嫌だったので,あたりを付けて解析することにした。 ドライバとアプリケーションがデータをやりとりするためには,DeviceIoControlというAPIをアプリケーション側で使用するはず。つまりDebugView.exeでもDeviceIoControlを使用しているはずである。 ということで,まずDependency WalkerでDebugView.exeを調べると,インポートセクションにDeviceIoControlが列挙されている。つまりプログラム内でDeviceIoControlが使用されていることが証明されたことになる。 次にDeviceIoControlをエクスポートしているkernel32.dllのラッパーDL

    DeviceIoControlについて - 窓のプログラミング