質問: お世話になっております. 独学でC#のコードを書くことが多く,一度ちゃんと言語仕様を理解しようと思い,日本語訳もあるのでEffectiveC#4.0を読むことにしました。 かなり難解だと思うことが多く, 半分くらいしか理解できていないと思っています。 ただ一回ざっと読んだ印象では逆に今まで自分の書いていたコードが恐ろしくなり, 読んでおいてよかったと思うことが沢山書いて合った気がします。 C#のコンパイラやメモリ管理およびその他の知識を拡充したいため何かオススメの書籍や情報源を教えていただけないでしょうか。 特に以下の項目を勉強したいです。 * CLR * IL * IDE拡張 * 逆アセンブル * デバッグ機能 * ガベージコレクタ * 副作用 * 共変性/反変性 今まで読んだ本は以下の通りです。 * VisualC#パーフェクトマスター 2013 * C#ショートプログラミング * C#によるマルチコアのための非同期/並列処理プログラミング * 究極のC#プログラミング~新スタイルによる実践的コーディング * C#6.0 Cook Book(洋書) 特に参照消し忘れのようなバグに悩まされているため, メモリの動きがどのようになっているか見る方法や, 参照している変数の調べ方などデバッグに重点を置いた内容の情報を探しています。よろしくお願いいたします。
回答: Visual Studioのデバッグで物足りないのであれば、windbgでsos拡張を使用するのがおすすめです。 Debugging Managed Code Using the Windows Debugger windbg sos で検索すれば解説サイトがいくつか出てきます。 > > 特に参照消し忘れのようなバグに悩まされているため, メモリの動きがどのようになっているか見る方法や, 参照している変数の調べ方などデバッグに重点を置いた内容の情報を探しています。 > > > !DumpHeapや!gcrootで調べることができます。