|
.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」の場合でも、デバッグ実行するとデバッガはアタッチされる。必ずしもビルド構成と一致しないことに注意してほしい。
カテゴリ:C# 処理対象:デバッグ
カテゴリ:Visual Basic .NET 処理対象:デバッグ
使用ライブラリ:Debuggerクラス(System.Diagnostics名前空間) |
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間