0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

S02 C#/.NET 現場トラブルシュート早見表:まず疑う順番(止血/応急処置)

Last updated at Posted at 2026-01-18

連載Index(読む順・公開済(リンク)はここが最新): S00_門前の誓い_総合Index

原因は後でいい。まず15分で「止血」と「切り分けの土俵」を作る。
このページはそのための、症状別の最短リンク集。


このページでできること(1分で把握)

  • 症状から「まず読む1本」を即決する
  • 事故を広げずに、止血(応急処置) → 切り分けへ戻す
  • 報告テンプレ/ログ観点をコピペして使う

まず読む3本(迷ったらここから)

  • 参照/ビルドが壊れた: E02
  • 再現不能/例外が見えない: R04
  • 証拠不足で詰む(異常なしと言われる): R05

止血(応急処置)の15分ループ(全事故共通)

影響を止める → 証拠を残す → 再現条件を固定する
  • 影響を止める: 戻す/絞る/失敗を早く返す(タイムアウト/キャンセル)
  • 証拠を残す: エラー文/スタック/時刻/端末差/設定差/バージョン差
  • 再現条件を固定する: いつから/どこで/誰の環境で/何を変えたか

症状別 まず疑う順番(早見表)

🧩 ビルド/参照/依存(端末差が出やすい)

症状(検索される言い方) まず疑う順番(3手) 最短リンク
ビルドが通らない / NuGetが壊れた / 端末差 依存解決のズレ → キャッシュ/復元 → 競合/固定 E02
変更影響が読めない / 参照が増殖 / 後で地獄 参照方向 → 境界/配布単位 → 循環の芽を潰す K27
項目を1つ足しただけで壊れる / 互換性/セキュリティ 破壊的変更 → バージョン戦略 → 攻撃面/運用固定 K30

🧨 実行時例外/再現不能(調査が終わらない系)

症状(検索される言い方) まず疑う順番(3手) 最短リンク
実行時だけ落ちる / 再現不能 / 例外が見えない 握り潰し疑い → 境界で変換 → throw;で証拠保持 R04
"異常なし"なのに追えない / ログが足りない 相関ID → 入力条件/境界ログ → レベル運用 R05
突然死する / 例外ログが残らない / Win32連携 WndProc/ハンドル寿命 → 例外経路 → 最短切り分け E06

🧵 UI/非同期/WinForms(固まる・戻らない・残る)

症状(検索される言い方) まず疑う順番(3手) 最短リンク
UIが固まる / 応答なし / フリーズ UIスレッド占有 → Invoke/await → ループ/ポンプ E04
awaitで挙動が変 / デッドロック 同期混在 → 帰還(SynchronizationContext) → 典型パターン R06
閉じたのにプロセスが残る Dispose漏れ → イベント解除 → ライフサイクル固定 R07
仕組みから腹落ちしたい(UIが固まる理由) メッセージループ → 同期/非同期 → 実戦の落とし穴 G11 / G13

🧾 文字/データ/比較(地味に燃えるやつ)

症状(検索される言い方) まず疑う順番(3手) 最短リンク
文字化け / Shift_JIS / UTF-8 / BOM 入出力境界 → 既定値 → BOM/エディタ差 G21
同じに見えるのに一致しない / 大小/文化圏 StringComparison固定 → 文化圏/大小 → 正規化 R03
CSV/TSV/JSON/XML選定で地雷 壊れ方(改行/エスケープ) → 運用(差分/手編集) → 相性 K29

🧠 コード読解/レビュー(止まるポイントを先に潰す)

症状(検索される言い方) まず疑う順番(3手) 最短リンク
ラムダが読めなくて止まる 受け口で型固定 → 長いなら名前付き → 読み筋を守る K26
varで揉める / 読めない 推論の基準固定 → 読み筋優先 → 例外を決める R02
out/戻り値を捨てたい(意図が伝わらない) discardで意図明示 → 判定は戻り値へ → 読み筋を守る R14
数値の丸め/誤差/金額ズレ 目的(誤差許容/金額)固定 → 型選定 → 丸め位置/表示 K28

📋 コピペで使う: 障害報告テンプレ(最小で詰まらない)

【発生時刻】:
【影響範囲】(誰が/どの機能が/どの頻度で):
【直近変更】(コード/設定/配布/環境):
【再現手順】(最小):
【端末差】(OS/.NET/設定/プロキシ等):
【エラー/ログ/スタック】:
【いまの止血策】(戻した/制限した/タイムアウト設定等):
【仮説】(疑っている順番):
【次の確認】(何を見れば否定/確定できるか):

🧾 コピペで使う: まず増やすログ観点(最低限)

  • 相関ID(1操作=1ID)
  • 入力条件(キー/件数/サイズ/バージョン)
  • 外部境界(HTTP/DB/ファイル/プロキシ/タイムアウト)
  • 例外(スタック込み、握り潰し禁止)

関連: R05 ログ設計の掟(証拠を残す / 構造化ログ)

https://qiita.com/vivinko/items/b15ed51fb2db6f19abf8


⚠️ 事故を増やす"よくある止血ミス"(やると詰む)

  • 例外を握り潰して"異常なし"を作る → 次に起きた時、再現できずに詰む
    関連: R04 / R05
  • "とりあえずリトライ"で負荷を倍にする → 上限/間隔/タイムアウト無しのリトライは事故を広げる
  • UIスレッドで重い処理を回す → 固まった後に"なぜか戻る"が一番厄介
    関連: E04 / R06

迷ったらここへ戻る

体系で探す/公開済の最新: S00

用語で詰んだら(壁を壊す): S01


更新方針(この表を最新に保つ)

  • 新規公開のたびに、該当行を表へ追加する
  • 行は「症状(検索語)→最短リンク」の形で増築する
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?