エピソード

Defrag Tools #186 - Time Travel Debugging - Advanced

Defrag Toolsこのエピソードでは、Andrew Richards は、Windows デバッガー チームの JCAB (Juan Carlos Arevalo Baeza) と Jordi Mola が参加し、WinDbg Preview: Time Travel Debugging (TTD) の新機能のより高度な使用方法を示しています。

関連リンク:

WinDbg プレビュー (Microsoft Store からダウンロード)
タイム トラベル デバッグの概要 (オンライン ドキュメント)
Windows ブログ タイムトラベルデバッグのデバッグツールに関する FAQ

タイムライン:[00:00] 概要
[01:07] スクリプトの実行時に Chakra Core でメモリ破損がクラッシュする。 デバッグが難しい!
[05:33] タイム トラベル デバッグ トレースの記録中に同じクラッシュを再現するようになりました
[07:06] 最適化されていないコードを使用して TTD トレースを確認する
[07:55] !events コマンドを使用して、トレース内の興味深いイベントと例外を一覧表示し、それらにジャンプします
[11:43] 破損したメモリが見つかり、戻って、それがどこから来たのかを把握します。
[13:15] dx コマンドを使用して不適切な値を含むメモリの場所を特定し、データ ブレークポイント (ba) を設定して、以前に書き込んだユーザーを確認する。
[17:37] 近づく。 トレールを後方に進んでください...
[19:29] 悪い値がどこから来たのか見つかりました!
[21:08] 別のユース ケース: 値が悪い場所を見つけて、バイナリ検索でそこから追跡します (!tt をパーセント値で使用してトレース内の場所にジャンプする)
[22:09] 2 番目のデモ: 同じクラッシュを確認しますが、運用コードは最適化されています。
[25:09] トレースを前後に実行すると、例外が発生します。
[26:54] WinDbg プレビューに関するフィードバックを提供するには、フィードバック ハブを使用します。