2026年9月19日に開催された「C# Kaigi 2026」で、「動作中のプログラムの中身をリアルタイムに覗くデバッガ」について発表してきました。

プロ太

ありがたいことに、なんと参加者投票では1位をいただきました!

この記事では、会議の様子と、私の発表の要点、印象に残った発表を短くまとめます。

C# Kaigi 2026とは

C# Kaigi 2026は、C#に関わる開発者が集まる技術カンファレンスです。

2026年9月19日(土)の13時から19時45分まで、お台場のdocomo R&D OPEN LAB ODAIBAで開催されました。

会場はBRIDGEエリアとPARKエリアの2トラック構成で、基調講演1本、通常セッション14本、LT大会1枠の全16枠が組まれていました。

全体のプログラムは公式のタイムテーブルで確認できます。発表資料もこちらにアップロードされています。

私が聴けたセッションについては、後半で印象に残ったものをピックアップして紹介します。

基調講演「C#の現在地 進化の歴史と、AI時代の.NET Everywhere」

基調講演は、Cysharpの河合宜文氏(neuecc氏)によるものでした。発表資料は公開されています。

プロ太

プレゼンテーションがとても上手く、面白い講演でした。会場では何度も笑いが起きていました。

前半はC#の歴史です。C# 1.0から現在までの言語の進化を、節目となった設計判断とともに一本の線でたどる内容でした。

async/awaitのように他の言語へ影響を与えた機能や、コンパイラ基盤の話にも触れられていました。

後半はAI時代のC#です。講演で挙げられた強みを4点にまとめます。

  • 型・高速コンパイル・統合Analyzer:AIが書いたコードの誤りがビルド時に分かる。Analyzerを書くのもAIが得意。
  • 知識の豊富さ:Web上の情報が多く、AIはC#/.NETをよく知っている。
  • パフォーマンス:言語が性能で選ばれる時代に、コンソールアプリならNativeAOT、WindowsアプリならネイティブGUIと、ネイティブ級の性能を出せる。
  • 1言語で全部書ける:結合箇所が減り、AIのコンテキストも人の把握範囲も小さくなる。

講演では、特に1点目を「圧倒的な強み」と言っていました。

プロ太

C#のRoslyn、Analyzer、Source Generatorは本当に強力な仕組みですよね!

C#で長年整備されてきたこれらの仕組みが、AI時代に活きるというのは感慨深いです。

あと、実は私が基調講演でいちばん感銘を受けたのは、C# 1.0における値型の重要性です。

最初の時点で値型を入れたことが、ジェネリクスで真価を発揮し、現在まで続くパフォーマンスの基盤になっているという話です。

当時としてはオブジェクト指向的ではない設計選択ですが、後から入れるのは難しい。こういう初期の判断が、後からすべてに効いてきます。

プロ太

「国家百年の計」と言いますが、言語設計もまさに同じだと感じました。

私の発表「動作中のプログラムの中身をリアルタイムに覗く」

(1) どんなデバッガか

私が発表したのは、Unityのゲーム、Blazor、WPFやWinFormsといった.NETアプリを対象にした、動かしたまま中身を覗けるデバッガです。

発表スライドは以下のとおりで、詳細はこちらをご覧ください。

デバッガの画面は図1のとおりです。左の3つのペインが「足あと」、右のペインが「値」です。

デバッガの画面。左にファイル・メソッド・文の足あと、右に変数の値
図1:デバッガの画面

止めずに、テンポよく動かし続けながらデバッグできる様子は、次の投稿の短い動画でご覧いただけます。

このデバッガには以下のような特徴があります。

  • 足あとは設定ゼロで見える:どこが動いているかが、ファイル・メソッド・文の3段階で、アプリの動きに合わせてリアルタイムに光ります。
  • 見当がついたらTracepointで詳しく見る:変数の値は、足あとで絞り込んだ場所にTracepointを置いて記録します。コードは書き換えず、再ビルドも再起動もしません。
  • フライトレコーダーのように過去を見返せる:一瞬しか光らない動きも、記録を止めてタイムラインを戻し、ゆっくり確認できます。
  • スロー実行できる:WaitPointを設定すると、指定箇所をスロー実行できます(停止させることも可)。
  • AIと連携できる:人がUIから行う操作と同じ契約で、AIも観測の記録を読み、Tracepointを置けます。

(2) 仕組みと対象

仕組みは、Roslynによるコード変換と、ビルドプロセスへの介入の組み合わせです。図2のとおり、原本のソースは変えずに、ビルド時に計装済みのコードへすり替えています。

システム構成。ビルド時に計装ツールがソースを変換し、実行時に計装済みアプリがデバッガ基盤へ送る。人はデバッガUIから、AIはHTTPから同じ契約で操作する
図2:システム構成

対象は.NET Standard 2.1で動き、MSBuildでビルドするものです。Unityはクラスライブラリのみ対応していて、Assets/直下のスクリプトは現時点では対象外です。

(3) いただいた質問と反響

登壇時と、そのあとの休憩時間に、いくつか質問をいただきました。そのなかから4つを紹介します。

  • Q:スロー再生のWaitPointはどう実装しているのか
    A:スレッド休眠を利用。無期限に待たせれば疑似ブレークポイントも可。ただしWebAssemblyはスレッドが1本なので、止めるとアプリ全体が止まってしまい、この機能は利用不可。
  • Q:後から再現できるのか
    A:記録の再生はできるが、入力にもとづくアプリの再実行はできない(タイムマシンデバッグではない)。
  • Q:Source Generatorではできないのか
    A:Source Generatorはコードを追加できるが、既存のコードの書き換えは不可。文ごとに処理を挿入するため、ビルド時に介入してコードを差し替えている。
  • Q:デバッガとデバッギのやりとりは
    A:WebSocketを使っている。

質疑は記憶をもとにした再構成です。ご質問の意図を正確に汲めていなかったら申し訳ありません。

当日は多くの反響をいただき、なんとXのトレンド要約(Grokによる自動生成)にも、発表したデバッガが載っていました!(以下は、2026年9月19日に撮ったものです)

Xのトレンド要約の画面。C# Kaigi 2026がお台場で開催され、基調講演と先進デバッガが話題、と表示されている
プロ太

C#好きの方々と、たくさんの技術議論ができてよかったです!
このデバッガについても、早く公開できるよう引き続き頑張っていきます!

印象に残った発表ピックアップ

どの発表もとても面白かったのですが、そのなかで特に印象に残った発表を3つ簡単に紹介します。詳細な内容については、ぜひ各発表ページと公開資料をご覧ください。

(1) ふとしたことから始めた .NET ランタイムへのコントリビュート

prozolic氏によるセッション発表資料)です。.NETランタイムへの貢献を始めた経緯と、改善できそうな箇所の見つけ方、日々のマージに追いつくための自作ツールの話でした。

C#の基盤へのOSS貢献をどう始めるかという、とても解像度の高い体験談で、参考になりました。

パフォーマンス改善のプルリクエストでは、レビュアーが計測環境のノイズや再現コードまで丁寧にチェックしている話がありました。

.NETランタイムの品質が、こうした真摯な議論に支えられていることが伝わってきました。

プロ太

メソッド1つの性能改善にも多大な労力がかかっています。

こうした貢献の積み上げの上で、私たちはC#で快適にコードを書けているのですね。

(2) C#でブラウザを自作して学んだ高速化、効率的なメモリの使い方

akeit0氏によるセッション発表資料)です。JavaScriptエンジンからHTMLレンダラーまでをC#で自作した経験をもとに、高速化とメモリの効率的な使い方を語る内容でした。

すべて自作しているのがすごく、発表もご自身で作ったブラウザの上で行われていました。

言語VMの実装レイヤーでの工夫が多数あり、詳しくはスライドをご覧ください。直前までバグ修正を続けていたとのことで、情熱が伝わってくる発表でした。

(3) C#コードの結合を可視化する:Roslyn解析による設計改善とリファクタリング判断

Ryu Hanaoka氏によるセッション発表資料)です。

Roslynなどでコードの結合を分析する自作ツール「dotnet-coupling」で結合を数値化し、設計改善やリファクタリングの判断材料にする話でした。
(実際には、Gitの変更履歴や人が与えるドメイン設定などの情報も組み合わせています。)

ソフトウェア全体をAIにリファクタリングさせるとトークン消費が激しくなります。そこで、AIに見せる前に「あたりをつけたい」という動機付けが分かりやすかったです。

C#はRoslynを使って静的解析を書きやすいので、この発表のようにAIによる解析の前さばきに使うのは有効だと感じました。

プロ太

このように、ランタイムの内部に踏み込む話、低レイヤーを自作した話、Roslynを使った静的解析と、とても濃い話が多く、面白い会議でした。

まとめ

C# Kaigi 2026の様子と、私の発表の要点、印象に残った発表を駆け足で紹介しました。

  • 基調講演:静的型付け・コンパイラ基盤・パフォーマンスというC#の強みは、AI時代にこそ効く。初期の設計判断が、後からすべてに効いてくる
  • 私の発表:動かしたまま中身を覗くデバッガ。足あとは設定ゼロで見え、AIも人と同じ契約で観測できる
  • 各発表:ランタイムへの貢献、ブラウザの自作、Roslynによる静的解析。C#が好きな人が技術を持ち寄る、濃い会議だった

会議全体を通して感じたのは、C#がAIとの協働を前提に捉え直されつつあるということです。

型・静的解析・実行時の観測は、どれも人とAIがコードを理解するための手段で、私の開発しているデバッガもその一角かな、などと思いました。

プロ太

C#Kaigiは、C#が好きな人なら絶対に楽しめるイベントかと思います。

来年も開催される予定とのことなので、興味がある方は参加してみましょう!

ABOUT ME
プロ太
ソフトウェア開発を楽しく、効率的に行う方法を追求しています。 開発者の視点から技術的課題に向き合い、「純粋な技術的興味に基づく探求」と「実践的な課題解決」という二つの柱を両輪として活動しています。