kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studio Users Community Japan 勉強会 #6でお話ししました

.NET Confローカルイベントということで、Visual Studio Users Community Japanでお話してきました。今回はMicrosoftでDirector of Development for .NET Platform team, formerly Dev Manager for the Visual Studio C++ and Debugger teams.のSteve Carroll氏が登壇していただけることになり、リモートでお話していただきました。Thank you Steve!

Steve氏は日本語がうまく(少なくとも私の英語よりも)、事前のミーティングでもだいぶ日本語でやってくれて助かりました。DebuggerチームのDev Managerということで、内容割とダダ被り(笑)でちょっと焦りました。

www.slideshare.net

そんなわけで私の発表資料です。Riderもちょっと紹介したのですが、C# 9.0の構文はEAP(早期リリース版)でぼちぼち対応されているそうですね。トップレベルステートメントはこういうサンプルの時に大変重宝するので、早く対応してほしいですね。dotMemoryやdotTraceといった支援ツールもクロスプラットフォーム対応になってくれると助かるけど、どうだろう?

いつもはAzure DevOpsのお話しているわけですが、今回は.NET Core(ともう言わずに単なる.NETですが)時代の障害解析ってどうだろうと改めて調べてみたということになります。ツールそのものはほぼ変わらないですが、dotnet-cliのグローバルツールが新しいですね。クロスプラットフォームで使えるようになったので、最低限のことはできるかなと思います。

なんか二人ほどからダンプ解析のハンズオン依頼されたけど、どうしよう…

(追記)
調べたらサンプルがありました😅。もうちょっと本格的なやつになると厳しいですがツールの使い方ならこれで割とわかるのではないかと思います。

docs.microsoft.com

docs.microsoft.com

docs.microsoft.com

Devblogラジオ第二回完全版公開しました

YouTubeライブの承認が下りて、テストもして大丈夫だと思ったら、一緒にしゃべっている松村さんの音声が入っていなかったというね…すいません。

我々はTeamsでしゃべっていて、そちらの録画ではもちろん問題なかったので、Teamsの録画を編集して完全版としてこちらに公開しています。


Devblogラジオ第二回(完全版)

もうすぐ .NET 5正式版公開ですね。RC2をネタに二人でしゃべっています。足利さんは体調不良ということでお休みでした。お大事に。

.NET Conf関西 2018開催しました

台風25号の襲来が危ぶまれる中、.NET Conf関西2018無事終了しました。ご来場の皆様、お手伝いしてくれた皆様、スピーカーの皆様、場所の提供および、セッション実施してくれた日本マイクロソフト様ありがとうございました。

前日のお昼くらいまで開催するか悩んでて、だいぶそれそう&遅そうということで開催決定しましたが、ほんと気が気じゃなかった。懇親会はお店の都合もあるので、早々にキャンセルを確定したのですが、会場はね…うーんという感じでしたが、できてよかったです。.NET Confといいつつ、.NET色がほとんどないのはいいんだか悪いんだか(汗)。

connpass.com

私はLTということで、VSTSあらため、Azure DevOpsの違いについてちょっとお話させてもらいました。たぶん12月から1月か2月でAzure DevOpsのイベントやろうかなぁと思っていますので、決まったらぜひ参加してください。

来週は東京で.NET Confがあります。こちらもぜひどうぞ。

csugjp.connpass.com

Azure App Service障害発生時のダンプ解析とシンボル管理

blog.shibayan.jp

App Serviceだけではないけど、障害が発生してダンプの解析をしなければならない場合がたまにあります。

ダンプ解析するにはそのモジュールのシンボル(pdb)ファイルを取っておかないといけないのですが、障害解析ができない場合に限って、シンボルをちゃんと管理しているという話をとんと聞きません。特にCやC++のネイティブモジュールであればシンボルがあると、ないとではかなり大変さが違います。

VSTS(Visual Studio Team Services)のPackage管理機能のライセンス(Enterprise Subscriptionを持っている人には入っています)があれば、VSTSのシンボルサーバー機能が使えます。どうやって使うのか紹介します。

シンボル設定初期値
シンボル設定初期値

オプションからシンボルを選択して、右上の赤枠アイコンをクリックします。

VSTS選択
VSTS選択

シンボルサーバーとしてライセンスがあるVSTSを選択します。

VSTSシンボルサーバー追加
VSTSシンボルサーバー追加

このように追加されます。

ビルド定義にシンボル発行を追加
ビルド定義にシンボル発行を追加

Publish Symbol PathタスクのPublish Symbolsにチェックすると、pdbファイルを自動的にVSTS内に保存します。保存先はVSTS内か、ファイル共有が選べます。

前書いたように、ビルド結果はRetain Policyに従って自動削除されます。シンボルも同じ制御を受けるので、ビルド結果が削除されると自動的にシンボルも削除されます。うっかりプロダクションにリリースしたファイルを削除しないように気を付けてください。

Azure App Serviceのプランによってはダンプが採取できます。

ダンプ収集
ダンプ収集

ダウンロードしたミニダンプをダウンロードして、Visual StudioやWinDbgで開くと、VSTSもシンボルサーバーとして扱われるので、自動的にシンボルが検索されます。

ダンプを開く
ダンプを開く

今までファイル共有などでシンボル管理はタイへだったと思いますが、VSTSのシンボルサーバー機能はダンプ解析する時大変便利なので、ぜひ使ってください。