visual studio 2010で楽しくデバッグ
DESCRIPTION
こみゅぷらすのCommunity Launc Eventで行ったVisual studio 2010デバッガの主にIntelliTraceのご紹介です。TRANSCRIPT
COMU+こみゅぷらす
Agenda
• Visual Studio 2010 デバッガ• デバッガ新機能• IntelliTrace
COMU+こみゅぷらす
自己紹介
• オンラインでの kkamegawa はほぼ私です(id:kkamegawa,@kkamegawa,MSDN/Technet forum) 。
• 最近は @IT でデバッガ連載しています。Visual Studio デバッグ技法http://www.atmarkit.co.jp/fdotnet/chushin/vsdebug_01/vsdebug_01_01.html
• 今日はそれを踏まえてデバッガのお話
COMU+こみゅぷらす
デバッガの機能差
• Express Edition の制限を認識しよう (C++ が意外と… )
Visual BASIC C# C++ Web Dev
JUST-IN-TIME × × × ×
プロセスへのアタッチ
× × ○ ×
ダンプファイル × × ○ ×
ヒットカウント × × ○ ×
ブレークの条件指定 × × ○ ×
リモートデバッグ × × × ×
ASP.NET Web ○ ○ × ○
関数でブレーク × × ○ ×
COMU+こみゅぷらす
VS2010 機能追加 – データヒント
• デバッガ実行中に変数をピン止めして、デバッグ中でいつでも閲覧可
• コメントもかけるよ• Import/Export で共有できるよ
COMU+こみゅぷらす
データヒントも便利だけど
COMU+こみゅぷらす
INTELLITRACE ってなに?
COMU+こみゅぷらす
IntelliTrace を使うシチュエーションをお楽しみください
COMU+こみゅぷらす
ホームズ、大変だ!
どうしたんだい、ワトソン君
COMU+こみゅぷらす
アプリケーションがクラッシュしちゃったんだよ
どういう手順でやったんだい?
COMU+こみゅぷらす
それがすごく複雑な手順だったんで、どんな操作したかも覚えてないんだ
むぅ、確かに例外が出ているね。いくら私でもこれは少し骨だ。
COMU+こみゅぷらす
ど、どうしよう。このバグ入れたまま出荷なんてできないよ!
まてよ、君が使っているのはUltimate じゃなかったか?IntelliTrace を使っていなかったのかい?
COMU+こみゅぷらす
IntelliTrace ?なんだいそれは?確かに Ultimate Edition使っているけど…
ワトソン君、それなら万事解決だ! IntelliTrace があればみんなベテランのバグハンターだよ!
COMU+こみゅぷらす
そして無事にバグの原因がわかったとさ
ちゃんちゃん♪
COMU+こみゅぷらす
IntelliTrace – その 1
• 一言でいえば「実行中の記録を全部取りながら実行してくれるすごいやつ」
• 通常デバッガからの起動で採取されますが、デバッガがなくてもとれます。
• 手元に環境がない Azure では特に有効
COMU+こみゅぷらす
ちょっぴり注意 – その 1
• 現時点で有効なのは .NET Framework のスタンドアロンプログラムくらい–起動済みプロセスへのアタッチ不可
( リモートデバッグも不可 )– Silverlight/Xbox/Windows Mobile/ スクリ
プト言語 /SQL CLR 開発ではサポートされていない
– F# は実験的なサポート
COMU+こみゅぷらす
でもちょっぴり注意 – その 2
• 32bit のモジュールにしか有効にならない–Windows x64 の AnyCPU や x64 は不可– x86 にした場合、 WCF サービスプロジェク
トではうまく動かなかった…
• ホストプロセス (vshost) は使用しないように– IntelliTrace のデバッグログが vshost に対
して採取されるのでデバッグにならない
COMU+こみゅぷらす
デモAzure の IntelliTrace
COMU+こみゅぷらす
クラウドも IntelliTrace
• Azure SDK 1.2 から Azure で生成されたIntelliTrace のファイル (itrace) も読み込めるようになりました。
• ログに制限がある~と泣いていた日もちょっと遠くなるかな?
• Azure は 64bit なので、オンプレミス側のVisual Studio でも x64 で IntelliTrace サポートしてくれるんじゃないかな ( 個人的な感想 ) 。
COMU+こみゅぷらす
チーム開発でも IntelliTrace
• IntelliTrace はデバッグ実行だけじゃないよ!真価はチーム開発
• Test Manager と組み合わせて、テストシナリオ実行中に起きたクラッシュレポートを開発者にバグとして発行→開発者は IntelliTrace のファイルを開けばその時点からデバッグ開始
し、仕事が…
COMU+こみゅぷらす
デモチーム開発の IntelliTrace
COMU+こみゅぷらす
まとめ
• デバッガ実践というよりは IntelliTrace 紹介でしたが、いかがでしょうか?
• 今のところ Ultimate Edition にしかないですが、評価版などで使ってみてください。
• IntelliTrace は @IT の第二回の Visual Studioデバッグ技法でもご紹介します。