SlideShare a Scribd company logo
1 of 94
ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバス
ター!!
AC12
ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 本セッションの位置づけ
2. 本日のお品書き
3. 注意事項
ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 本セッションの位置づけ
2. 本日のお品書き
3. 注意事項
本セッションの位置づけ
運用中アプリの
ダンプやトレース解析
本セッションの位置づけ
デバッグ エキスパートに必要なス
キル
プログラミング
言語OS と環境の理
解
CPU の理解
テクノロジーと
ツール
Lv MAX
ヘンタイによる、ヘンタイの為のセッション
本セッションの位置づけ - だから面白
い!!
エキスパー
ト
エキスパー
ト
考えるな、
本セッションの位置づけ
感じろ。
ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 本セッションの位置づけ
2. 本日のお品書き
3. 注意事項
本セッションの位置づけ
デバッグ エキスパートに必要なス
キル
プログラミング
言語OS と環境の理
解
CPU の理解
テクノロジーと
ツール
本日のお品書き
早川 冷(レン)
応急処置タイムトラ
ベルTTD Detour
ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 本セッションの位置づけ
2. 本日のお品書き
3. 注意事項
注意事項
悪用厳禁!
メモは不
要!
注意事項
注意事項
あたたかく見守っ
て!
新しい WinDbg による
Time Travel Debugging (TTD) のご紹
介
AC12
新しくなった WinDbg で
アプリの問題を 2 分で解
決!
対象 : C++ 17 の <Filesystem> を使ったファイル列挙
ウォーミング アップ!
お気づきでしょうか?
お気づきでしょうか?
新しい WinDbg では
過去の処理を遡って
デバッグできます!!
• WinDbg がリニューアル!
本セッションでお伝えしたいこと
• WinDbg がリニューアル!
• 超強力な新機能 “TTD” を搭載!
本セッションでお伝えしたいこと
• WinDbg がリニューアル!
• 超強力な新機能 “TTD” を搭載!
• 現場のトラブルシュートでぜひ活用し
てください!
本セッションでお伝えしたいこと
本セッションの流れ
1. TTD の概要 (ダンプ解析との比較)
2. 導入・トレースの採取
3. よく使うコマンド
4. TTD が威力を発揮するケース
1. TTD の概要 (ダンプ解析との比較)
2. 導入・トレースの採取
3. よく使うコマンド
4. TTD が威力を発揮するケース
これまでのダンプ解析は、、、
これまでのダンプ解析は、、、
これまでのダンプ解析は、、、
これまでのダンプ解析は、、、
でもこれからは、
これからは Time Travel Debugging !
これからは Time Travel Debugging !
これからは Time Travel Debugging !
これからは Time Travel Debugging !
これからは Time Travel Debugging !
1. TTD の概要 (ダンプ解析との比較)
2. 導入・トレースの採取
3. よく使うコマンド
4. TTD が威力を発揮するケース
入手方法 : Microsoft Store から
対象アプリ : C/C++ および .NET Framework
トレースの採取方法 (1) : ツールをアタッチ
して起動
トレースの採取方法 (2) : 起動中のアプリに
アタッチ
採取期間は任意
トレース ファイル : .run と .idx
1. TTD の概要 (ダンプ解析との比較)
2. 導入・トレースの採取
3. よく使うコマンド
4. TTD が威力を発揮するするケース
従来の WinDbg コマンドはそのまま利用可
能
- 後ろ向きに
- 後ろ向きに
- 後ろ向きに
- 前の
- 前の
新しい WinDbg で追加された TTD 用コマン
ド
• sxe ld
• sxe ct
• sxe et
• sxe
• sxr
イベント発生時にブレークさせるコマンド
bp
bp
bm
ba
ba
ブレークポイントを設定するコマンド (1 /
4)
!sos.name2ee <モジュール名>!<クラス名>.<メソッ
ド名>
bp
ブレークポイントを設定するコマンド (2 /
4)
!sos.dumpdomain
!sos.dumpmodule –mt <module>
!sos.name2ee
!sos.dumpmt -md <MethodTable>
!sos.dumpmd <MethodDescriptor>
ブレークポイントを設定するコマンド (3 /
4)
bp
ブレークポイントを設定するコマンド (4 /
4)
1. TTD の概要 (ダンプ解析との比較)
2. 導入・トレースの採取
3. よく使うコマンド
4. TTD が威力を発揮するケース
• すると、ログの一部が欠落していることが判明
(>_<)
• まずはログの問題を急ぎ調査することに、、、
• ログ出力には社内標準ライブラリを使用していて中
身はよくわからない
Q : どうやって調査しますか?
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
です。
調査を難しくする要因
Demo :
悩ましい問題を TTD で解決!
ダンプ解析が難しい問題も
TTD で一気に解決できます!!!
関数にブレークポイントを張り、
どんどん処理を遡って解析できます!
• WinDbg がリニューアル!
• 超強力な新機能 “TTD” を搭載!
• 現場のトラブルシュートでぜひ活用し
てください!
最後にもう一度 : 本セッションでお伝えし
たいこと
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
参考資料
Detours - 迂回
アプリで問題発生したら・・・
ダンプを取る
トレースを取る
アプリで問題発生したら・・・
トレースを取る
そこで・・・
Detours
Detours - 本日の内容
Detours を知
る!
Detours を使う!
Detours を知る!
Detours を知
る!
1. ここが凄い!
2. フックの仕組
み
3. SDK の中身
Detours を知る! - 1. ここが凄い!
Detours を知
る!
1. ここが凄い!
2. フックの仕組
み
3. SDK の中身
Detours を知る! - 1. ここが凄い!
【祝】 無料
!
https://github.com/Microsoft/Detours
Detours を知る! - 1. ここが凄い!
すべての関数を簡単にフック
フックの中でトレースを実装
フックの中で関数の動作を変更可能
Detours を知る! - 2. フックの仕組み
Detours を知
る!
1. ここが凄い!
2. フックの仕組
み
3. SDK の中身
Detours を知る! - 2. フックの仕組み
呼び出し元
ターゲット関
数
呼び出し元 呼び出し元
パターン 1 パターン 2
ターゲット関
数
ターゲット関
数
Detour 関数 Detour 関数
Detours を知る! - 3. SDK の中身
Detours を知
る!
1. ここが凄い!
2. フックの仕組
み
3. SDK の中身
WithDll / SetDll
Detours を知る! - 3. SDK の中身
•ソース
コード
•サンプル
Detours SDK そのまま使えるサンプル
TrcApi64 / TrcApi32
Detours - 本日の内容
Detours を知
る!
Detours を使う!
Detours を使う!
Detours を使う!
1. トレースを取
る
2. トレースを診
る
運用環境でアプリが!! 現場に急行せ
よ!
Windows File Manager
(WinFile)
GitHub で公開中
https://github.com/Microsoft/winfile
社長が愛用する
WinFile で問題
が!
運用環境でアプリが!! 現場に急行せ
よ! 問題2
ヘルプメニューの項目
を
クリックすると、エ
ラー
問題1
特定のフォルダをクリック
すると、
意味不明なエラーメッセー
ジ
以下のものを入れたノート PC を持
参
運用環境でアプリが!! 現場に急行せ
よ!
Detours SDK
Detours を使う! - 1. トレースを取る
Detours を使う!
1. トレースを取
る
2. トレースを診
る
使用するコマンド
Detours を使う! - 1. トレースを取る : 作業
start syelogd.exe /q test.txt
withdll.exe /d:trcapi64.dll winfile.exe
作業の結果
Detours を使う! - 1. トレースを取る : 結果
Detours を使う! - 2. トレースを診る
Detours を使う!
1. トレースを取
る
2. トレースを診
る
Detours を使う! - 2. トレースを診る : 調査
MessageBox でエラーになった場所を探す
0 エラー
-1 エラー
• 上記以外は成功
解析の結果 – 原因を特定
Detours を使う! - 2. トレースを診る : 結果
問題 1
原因 : 不要なメッセージが表示
対処 : メッセージを非表示にす
る
問題 2
原因 : サポートされてない関数
対処 : 正しく動作する関数に変
える
Detours を使う! - 3. 対処をする
Detours を使う!
1. トレースを取
る
2. トレースを診
る
PatchDemo64.DLL を作成し使用
Detours を使う! - 3. 対処をする : DLL を作
成
Windows の API - MessageBoxW
WFHelp
作成した DLL を使用するコマンド
Detours を使う! - 3. 対処をする : DLL で対
処
withdll.exe /d:PatchDemo64.dll winfile.exe
setdll.exe /d:PatchDemo64.dll winfile.exe
Winfile.exe
または
Detours を使う! - 3. 対処をする : おさらい
呼び出し元 WFHelp()
MessageBoxW() WinHelp()
Detour 関数
Detour 関数
HtmlHelp()を呼
ぶ
問題 1 : エラーメッセージ
の対処
問題 2 : ヘルプの修正
運用環境でアプリが!! 現場に急行せ
よ!
Windows File Manager
(WinFile)
GitHub で公開中
https://github.com/Microsoft/winfile
社長が愛用する
WinFile で問題
が!
Detours まとめ - ここが凄い!
すべての関数を簡単にフック
フックの中でトレースを実装
フックの中で関数の動作を変更可能
ハードコア デバッギング : サポート直伝!
運用中 Windows アプリケーション バグバスター!!
AC12
1. 事務連絡
2. 本セッションのまとめ
本セッションのまとめ - 位置づけ
デバッグ エキスパートに
必要なスキル
プログラミング言語
OS と環境の理解
CPU の理解
テクノロジーとツール
https://aka.ms/ac12
本セッションのまとめ - 本日の内容
特定の関数のフック
応急処置に利用
一定期間のダンプ
過去に戻って調査
TTD
(Time Travel Debugging)
Detours
https://aka.ms/ac12
本セッションのまとめ - 資料
https://aka.ms/ac12
考えるな、感じろ。
最後に一言
それは月を指差すようなこと。
指先だけに捉われずに、
その先の栄光を掴むんだ!
様々な技術を活かし、
イノベーションを起こそ
う!
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

More Related Content

What's hot

事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)Tokoroten Nakayama
 
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...TAKUYA OHTA
 
DI(依存性注入)について
DI(依存性注入)についてDI(依存性注入)について
DI(依存性注入)についてYui Ito
 
僕たちがすべきことはリファクタリングなのか
僕たちがすべきことはリファクタリングなのか僕たちがすべきことはリファクタリングなのか
僕たちがすべきことはリファクタリングなのかIto Takumi
 
YoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはYoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはwata2ki
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知るShuhei Fujita
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方増田 亨
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Preferred Networks
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム信之 岩永
 
Arxan導入前後で変わったこと
Arxan導入前後で変わったことArxan導入前後で変わったこと
Arxan導入前後で変わったことYusuke Shirakawa
 

What's hot (20)

実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
 
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
 
DI(依存性注入)について
DI(依存性注入)についてDI(依存性注入)について
DI(依存性注入)について
 
僕たちがすべきことはリファクタリングなのか
僕たちがすべきことはリファクタリングなのか僕たちがすべきことはリファクタリングなのか
僕たちがすべきことはリファクタリングなのか
 
YoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはYoctoでLTSディストリを作るには
YoctoでLTSディストリを作るには
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
 
いつやるの?Git入門
いつやるの?Git入門いつやるの?Git入門
いつやるの?Git入門
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
世界最強のソフトウェアアーキテクト
世界最強のソフトウェアアーキテクト世界最強のソフトウェアアーキテクト
世界最強のソフトウェアアーキテクト
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
Arxan導入前後で変わったこと
Arxan導入前後で変わったことArxan導入前後で変わったこと
Arxan導入前後で変わったこと
 

Similar to ハードコア デバッギング : サポート直伝!運用中 Windows アプリケーション バグバスター!!

Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/AndroidセキュアコーディングMasaki Kubo
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 
Dockerを使いたいと思ってもらうためのスライド
Dockerを使いたいと思ってもらうためのスライドDockerを使いたいと思ってもらうためのスライド
Dockerを使いたいと思ってもらうためのスライドMiyako Yuno
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた徹 上野山
 
超簡単!バージョン管理入門 最初の一歩
超簡単!バージョン管理入門 最初の一歩超簡単!バージョン管理入門 最初の一歩
超簡単!バージョン管理入門 最初の一歩Shin Tanigawa
 
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf耕二 阿部
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp CodereadingHiro Yoshioka
 
Potatotops20141217
Potatotops20141217Potatotops20141217
Potatotops20141217Mogi Isamu
 
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編Takafumi Inamori
 
ソフトウェア構成管理入門
ソフトウェア構成管理入門ソフトウェア構成管理入門
ソフトウェア構成管理入門智治 長沢
 
Linux daemonとsupervisordの美味しい関係
Linux daemonとsupervisordの美味しい関係Linux daemonとsupervisordの美味しい関係
Linux daemonとsupervisordの美味しい関係Kazushige TAKEUCHI
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念Masahito Zembutsu
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternAtsushi Kambara
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜Taro Matsuzawa
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Developers Summit
 
数千人が利用する楽天Redmineの過去と未来 - The past and future of Rakuten Redmine that is the...
数千人が利用する楽天Redmineの過去と未来 - The past and future of  Rakuten Redmine that is the...数千人が利用する楽天Redmineの過去と未来 - The past and future of  Rakuten Redmine that is the...
数千人が利用する楽天Redmineの過去と未来 - The past and future of Rakuten Redmine that is the...Dai FUJIHARA
 

Similar to ハードコア デバッギング : サポート直伝!運用中 Windows アプリケーション バグバスター!! (20)

Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/Androidセキュアコーディング
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
Dockerを使いたいと思ってもらうためのスライド
Dockerを使いたいと思ってもらうためのスライドDockerを使いたいと思ってもらうためのスライド
Dockerを使いたいと思ってもらうためのスライド
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
pgCafeMitaka20090723
pgCafeMitaka20090723pgCafeMitaka20090723
pgCafeMitaka20090723
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
超簡単!バージョン管理入門 最初の一歩
超簡単!バージョン管理入門 最初の一歩超簡単!バージョン管理入門 最初の一歩
超簡単!バージョン管理入門 最初の一歩
 
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
Potatotops20141217
Potatotops20141217Potatotops20141217
Potatotops20141217
 
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
 
ソフトウェア構成管理入門
ソフトウェア構成管理入門ソフトウェア構成管理入門
ソフトウェア構成管理入門
 
Linux daemonとsupervisordの美味しい関係
Linux daemonとsupervisordの美味しい関係Linux daemonとsupervisordの美味しい関係
Linux daemonとsupervisordの美味しい関係
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
 
OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
数千人が利用する楽天Redmineの過去と未来 - The past and future of Rakuten Redmine that is the...
数千人が利用する楽天Redmineの過去と未来 - The past and future of  Rakuten Redmine that is the...数千人が利用する楽天Redmineの過去と未来 - The past and future of  Rakuten Redmine that is the...
数千人が利用する楽天Redmineの過去と未来 - The past and future of Rakuten Redmine that is the...
 

More from TAKUYA OHTA

IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit GuardIT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit GuardTAKUYA OHTA
 
IT エンジニアのための 流し読み Windows - Windows 共有 PC モード
IT エンジニアのための 流し読み Windows - Windows 共有 PC モードIT エンジニアのための 流し読み Windows - Windows 共有 PC モード
IT エンジニアのための 流し読み Windows - Windows 共有 PC モードTAKUYA OHTA
 
IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要
IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要
IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要TAKUYA OHTA
 
IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策TAKUYA OHTA
 
IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証
IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証
IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証TAKUYA OHTA
 
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理TAKUYA OHTA
 
IT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイント
IT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイントIT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイント
IT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイントTAKUYA OHTA
 
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストール
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストールIT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストール
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストールTAKUYA OHTA
 
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレードIT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレードTAKUYA OHTA
 
Microsoft デスクトップ仮想化ソリューション比較
Microsoft デスクトップ仮想化ソリューション比較Microsoft デスクトップ仮想化ソリューション比較
Microsoft デスクトップ仮想化ソリューション比較TAKUYA OHTA
 
IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -
IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -
IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -TAKUYA OHTA
 
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge について
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge についてIT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge について
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge についてTAKUYA OHTA
 
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...TAKUYA OHTA
 
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATP
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATPIT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATP
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATPTAKUYA OHTA
 
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策TAKUYA OHTA
 
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for BusinessIT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for BusinessTAKUYA OHTA
 
IT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズ
IT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズIT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズ
IT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズTAKUYA OHTA
 
IT エンジニアのための 流し読み Windows 10 - Windows サンドボックス
IT エンジニアのための 流し読み Windows 10 - Windows サンドボックスIT エンジニアのための 流し読み Windows 10 - Windows サンドボックス
IT エンジニアのための 流し読み Windows 10 - Windows サンドボックスTAKUYA OHTA
 
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能TAKUYA OHTA
 
IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証
IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証
IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証TAKUYA OHTA
 

More from TAKUYA OHTA (20)

IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit GuardIT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
 
IT エンジニアのための 流し読み Windows - Windows 共有 PC モード
IT エンジニアのための 流し読み Windows - Windows 共有 PC モードIT エンジニアのための 流し読み Windows - Windows 共有 PC モード
IT エンジニアのための 流し読み Windows - Windows 共有 PC モード
 
IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要
IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要
IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要
 
IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策
 
IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証
IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証
IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証
 
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理
 
IT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイント
IT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイントIT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイント
IT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイント
 
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストール
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストールIT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストール
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストール
 
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレードIT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
 
Microsoft デスクトップ仮想化ソリューション比較
Microsoft デスクトップ仮想化ソリューション比較Microsoft デスクトップ仮想化ソリューション比較
Microsoft デスクトップ仮想化ソリューション比較
 
IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -
IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -
IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -
 
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge について
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge についてIT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge について
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge について
 
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
 
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATP
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATPIT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATP
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATP
 
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
 
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for BusinessIT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
 
IT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズ
IT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズIT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズ
IT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズ
 
IT エンジニアのための 流し読み Windows 10 - Windows サンドボックス
IT エンジニアのための 流し読み Windows 10 - Windows サンドボックスIT エンジニアのための 流し読み Windows 10 - Windows サンドボックス
IT エンジニアのための 流し読み Windows 10 - Windows サンドボックス
 
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
 
IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証
IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証
IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証
 

ハードコア デバッギング : サポート直伝!運用中 Windows アプリケーション バグバスター!!

Editor's Notes

  1. 開発専門家とデバッグ専門家の境
  2. 開発専門家とデバッグ専門家の境
  3. その時なにが起こっていたが、ダンプを調査 2. メモリ上で書き換える
  4. それでは、私、早川から、昨年 9 月に公開され、皆さんのデバッグ ライフに革命をもたらす可能性を秘めた Time Travel Debugging をご紹介させていただきます。 と、その前に、、、
  5. 例外発生時点まで逆戻りをしてコールスタックを表示しました
  6. 関数の呼び出し箇所までさかのぼって操作しました
  7. そう、新しい WinDbg では、プログラムを過去の時点に遡ってデバッグすることができるのです。
  8. そう、新しい WinDbg では、プログラムを過去の時点に遡ってデバッグすることができるのです。
  9. まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
  10. まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
  11. まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
  12. まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
  13. まず、ご覧いただいたようにリボン UI を持つようになり、操作性が向上しました
  14. そもそもトレースを取れない
  15. ここで WinFile を起動して、問題を見せる WinFile – Win9x 時代のファイルマネージャ GitHubにて公開 https://github.com/Microsoft/winfile 問題点 特定のフォルダをクリックするとエラー ダイアログ ヘルプをクリックするとエラー ダイアログ
  16. ここで WinFile を起動して、問題を見せる WinFile – Win9x 時代のファイルマネージャ GitHubにて公開 https://github.com/Microsoft/winfile 問題点 特定のフォルダをクリックするとエラー ダイアログ ヘルプをクリックするとエラー ダイアログ
  17. ここで WinFile を起動して、問題を見せる WinFile – Win9x 時代のファイルマネージャ GitHubにて公開 https://github.com/Microsoft/winfile 問題点 特定のフォルダをクリックするとエラー ダイアログ ヘルプをクリックするとエラー ダイアログ
  18. ここで WinFile を起動して、問題を見せる WinFile – Win9x 時代のファイルマネージャ GitHubにて公開 https://github.com/Microsoft/winfile 問題点 特定のフォルダをクリックするとエラー ダイアログ ヘルプをクリックするとエラー ダイアログ
  19. 開発専門家とデバッグ専門家の境
  20. 開発専門家とデバッグ専門家の境