More Related Content
Similar to ハードコア デバッギング : サポート直伝!運用中 Windows アプリケーション バグバスター!! (20)
More from TAKUYA OHTA (20)
ハードコア デバッギング : サポート直伝!運用中 Windows アプリケーション バグバスター!!
- 2. ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 本セッションの位置づけ
2. 本日のお品書き
3. 注意事項
- 3. ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 本セッションの位置づけ
2. 本日のお品書き
3. 注意事項
- 8. ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 本セッションの位置づけ
2. 本日のお品書き
3. 注意事項
- 11. ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 本セッションの位置づけ
2. 本日のお品書き
3. 注意事項
- 25. 1. TTD の概要 (ダンプ解析との比較)
2. 導入・トレースの採取
3. よく使うコマンド
4. TTD が威力を発揮するケース
- 36. 1. TTD の概要 (ダンプ解析との比較)
2. 導入・トレースの採取
3. よく使うコマンド
4. TTD が威力を発揮するケース
- 43. 1. TTD の概要 (ダンプ解析との比較)
2. 導入・トレースの採取
3. よく使うコマンド
4. TTD が威力を発揮するするケース
- 46. • sxe ld
• sxe ct
• sxe et
• sxe
• sxr
イベント発生時にブレークさせるコマンド
- 51. 1. TTD の概要 (ダンプ解析との比較)
2. 導入・トレースの採取
3. よく使うコマンド
4. TTD が威力を発揮するケース
- 53. Q : どうやって調査しますか?
2018/05/23 12:34:56 (重要)
アプリケーションでパフォーマンス異常が検出されました。システムの
CPU 使用率は 85.0 %、メモリの空き領域は 1,352 MByte、TCPv4 の接続
数は 952 です。
2018/05/23 12:34:56 ()
アプリケーションでパフォーマンス異常が検出されました。システムの
CPU 使用率は 0 %、メモリの空き領域は 0 MByte、TCPv4 の接続数は 0
です。
- 57. • WinDbg がリニューアル!
• 超強力な新機能 “TTD” を搭載!
• 現場のトラブルシュートでぜひ活用し
てください!
最後にもう一度 : 本セッションでお伝えし
たいこと
- 58. Time Travel Debugging – Overview
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/time-travel-debugging-
overview
Debugging Using WinDbg Preview
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugging-using-windbg-
preview
Debugger Reference
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
Overview of x64 Calling Conventions
https://docs.microsoft.com/en-us/cpp/build/overview-of-x64-calling-conventions
SOS.dll (SOS Debugging Extension)
https://docs.microsoft.com/en-us/dotnet/framework/tools/sos-dll-sos-debugging-extension
参考資料
- 65. Detours を知る! - 1. ここが凄い!
Detours を知
る!
1. ここが凄い!
2. フックの仕組
み
3. SDK の中身
- 66. Detours を知る! - 1. ここが凄い!
【祝】 無料
!
https://github.com/Microsoft/Detours
- 67. Detours を知る! - 1. ここが凄い!
すべての関数を簡単にフック
フックの中でトレースを実装
フックの中で関数の動作を変更可能
- 68. Detours を知る! - 2. フックの仕組み
Detours を知
る!
1. ここが凄い!
2. フックの仕組
み
3. SDK の中身
- 69. Detours を知る! - 2. フックの仕組み
呼び出し元
ターゲット関
数
呼び出し元 呼び出し元
パターン 1 パターン 2
ターゲット関
数
ターゲット関
数
Detour 関数 Detour 関数
- 70. Detours を知る! - 3. SDK の中身
Detours を知
る!
1. ここが凄い!
2. フックの仕組
み
3. SDK の中身
- 81. Detours を使う! - 2. トレースを診る : 調査
MessageBox でエラーになった場所を探す
0 エラー
-1 エラー
• 上記以外は成功
- 82. 解析の結果 – 原因を特定
Detours を使う! - 2. トレースを診る : 結果
問題 1
原因 : 不要なメッセージが表示
対処 : メッセージを非表示にす
る
問題 2
原因 : サポートされてない関数
対処 : 正しく動作する関数に変
える
- 85. 作成した DLL を使用するコマンド
Detours を使う! - 3. 対処をする : DLL で対
処
withdll.exe /d:PatchDemo64.dll winfile.exe
setdll.exe /d:PatchDemo64.dll winfile.exe
Winfile.exe
または
- 86. Detours を使う! - 3. 対処をする : おさらい
呼び出し元 WFHelp()
MessageBoxW() WinHelp()
Detour 関数
Detour 関数
HtmlHelp()を呼
ぶ
問題 1 : エラーメッセージ
の対処
問題 2 : ヘルプの修正
- 88. Detours まとめ - ここが凄い!
すべての関数を簡単にフック
フックの中でトレースを実装
フックの中で関数の動作を変更可能
- 89. ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 事務連絡
2. 本セッションのまとめ
- 94. © 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
Editor's Notes
- 開発専門家とデバッグ専門家の境
- 開発専門家とデバッグ専門家の境
- その時なにが起こっていたが、ダンプを調査
2. メモリ上で書き換える
- それでは、私、早川から、昨年 9 月に公開され、皆さんのデバッグ ライフに革命をもたらす可能性を秘めた Time Travel Debugging をご紹介させていただきます。
と、その前に、、、
- 例外発生時点まで逆戻りをしてコールスタックを表示しました
- 関数の呼び出し箇所までさかのぼって操作しました
- そう、新しい WinDbg では、プログラムを過去の時点に遡ってデバッグすることができるのです。
- そう、新しい WinDbg では、プログラムを過去の時点に遡ってデバッグすることができるのです。
- まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
- まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
- まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
- まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
- まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
- そもそもトレースを取れない
- ここで WinFile を起動して、問題を見せる
WinFile – Win9x 時代のファイルマネージャ
GitHubにて公開https://github.com/Microsoft/winfile
問題点
特定のフォルダをクリックするとエラー ダイアログ
ヘルプをクリックするとエラー ダイアログ
- ここで WinFile を起動して、問題を見せる
WinFile – Win9x 時代のファイルマネージャ
GitHubにて公開https://github.com/Microsoft/winfile
問題点
特定のフォルダをクリックするとエラー ダイアログ
ヘルプをクリックするとエラー ダイアログ
- ここで WinFile を起動して、問題を見せる
WinFile – Win9x 時代のファイルマネージャ
GitHubにて公開https://github.com/Microsoft/winfile
問題点
特定のフォルダをクリックするとエラー ダイアログ
ヘルプをクリックするとエラー ダイアログ
- ここで WinFile を起動して、問題を見せる
WinFile – Win9x 時代のファイルマネージャ
GitHubにて公開https://github.com/Microsoft/winfile
問題点
特定のフォルダをクリックするとエラー ダイアログ
ヘルプをクリックするとエラー ダイアログ
- 開発専門家とデバッグ専門家の境
- 開発専門家とデバッグ専門家の境