.NET TIPS

実行中のアプリケーションにデバッガが接続されているかを判定するには?[C#、VB]

デジタルアドバンテージ 一色 政彦
2009/11/26

 「TIPS:テスト用コードをデバッグ時にのみ実行するには?」では、ビルド構成が「Debug」の場合にのみ実行されるコードを説明した。本稿では、それとは異なり、ビルド構成にかかわらず、実際にデバッガによりアタッチ(=接続)されている場合にのみ実行されるコードを記述する方法を紹介する。

デバッガによりアタッチされているときのみ、コードを実行する方法

 これには、Debuggerクラス(System.Diagnostics名前空間)の静的プロパティIsAttachedを使えばよい。IsAttachedプロパティでは、アタッチされているときはtrue、そうでないときはfalseが取得できる。

 次のコードは、デバッガにアタッチされているかいないかを出力するコンソール・アプリケーションのサンプルである。

using System;
using System.Diagnostics;

class Program
{
  static void Main(string[] args)
  {
    if (Debugger.IsAttached)
    {
      Console.WriteLine("デバッガ:ON");
    }
    else
    {
      Console.WriteLine("デバッガ:OFF");
    }
    Console.ReadKey();
  }
}
Module Module1

  Sub Main()
    If Debugger.IsAttached Then
      Console.WriteLine("デバッガ:ON")
    Else
      Console.WriteLine("デバッガ:OFF")
    End If
    Console.ReadKey()
  End Sub

End Module
デバッガのアタッチを判定するサンプル・コード(上:C#、下:VB)

 ビルド構成が「Release」の場合でも、デバッグ実行するとデバッガはアタッチされる。必ずしもビルド構成と一致しないことに注意してほしい。End of Article

カテゴリ:C# 処理対象:デバッグ
カテゴリ:Visual Basic .NET 処理対象:デバッグ
使用ライブラリ:Debuggerクラス(System.Diagnostics名前空間)

この記事と関連性の高い別の.NET TIPS
VB開発者設定で「Debug」や「Release」などのソリューション構成を有効にするには?
VS.NETでデバッグ版/リリース版以外のビルド構成を追加するには?
ClickOnceアプリケーションをデバッグするには?
アプリケーション内でデータベースをアタッチするには?
独自のビルド構成により実行コードを切り替えるには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間