.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」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH