リモートの.NETデバッガが接続されるまで待機する方法
2023-10-18 16:34:43
質問
今日、私はプログラムをリモートデバッグする必要がある問題に遭遇しました。 プログラムは別のシステムから起動されたので、私は本当にコマンドラインでそれを操作する機会がありません。 しかし、私はそのソースを簡単に変更することができました。
私が必要としたのは、プログラムが正常に開始され、その後、私がデバッガでそれにアタッチするのを待つことでした。私は、満足のいくような方法を思いつきませんでした。 私はバグを見つけましたが、デバッガーの助けは必要ありませんでした。
while(true) { }
プロセスを存続させ、そしてデバッガで "set next statement" することができましたが、それはぎこちなく無作法に思えました。
Console.ReadLine();
実際に押すべきコンソールがなかったので、入力するのが奇妙に思えました。 を入力します。 を押すためのコンソールがなかったからです。 (それもうまくいかなかった。 Set next文→runでReadLine()の待ち時間に戻ってしまいます)
では、.NET/CLR/C# プログラムに、"デバッガでアタッチできるまでここで待つ" というようなコードを挿入するには、どのような種類のコードがありますか?
どのように解決するのですか?
あなたは System.Diagnostics.Debugger.IsAttached プロパティを使用して、デバッガーがプロセスにアタッチされているかどうかをチェックします。このアプリケーションは、デバッガーがアタッチされるまで待機します。
using System;
using System.Diagnostics;
using System.Threading;
namespace DebugApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Waiting for debugger to attach");
while (!Debugger.IsAttached)
{
Thread.Sleep(100);
}
Console.WriteLine("Debugger attached");
}
}
}
関連
-
[解決済み] msiexec を使用せずにコマンドラインから MSI ファイルをアンインストールする
-
[解決済み] AndroidでWCFサービスを利用する方法
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] .NETでフォーマット文字列のブレース(中括弧)をエスケープする方法
-
[解決済み] .NETコンソールアプリケーションでアプリケーションのパスを取得するにはどうすればよいですか?
-
[解決済み] .NETアプリケーションを強制的に管理者として実行させるにはどうしたらいいですか?
-
[解決済み] 埋め込みリソーステキストファイルの読み方
-
[解決済み] C#を使用して.NETで現在のユーザー名を取得する方法は?
-
[解決済み] WPFのStaticResourceとDynamicResourceの違いは何ですか?
-
[解決済み] Google ChromeでJavaScriptデバッガーを起動する方法を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ServicePointManagerは、*スキームのプロキシをサポートしていません[closed]。
-
[解決済み] VB.NETでプログラムパスを取得する?
-
[解決済み] AndroidでWCFサービスを利用する方法
-
[解決済み] AssemblyInfo.csは何に使うのですか?
-
[解決済み] DockPanelを空きスペースいっぱいに表示させる方法
-
[解決済み] gacutil.exeはどこですか?
-
[解決済み] Moq Callbackについて教えてください。
-
[解決済み] Powershell v3 Invoke-WebRequest HTTPSエラー
-
[解決済み] WPFの場合、x:Name属性とName属性の違いは何ですか?
-
[解決済み] RelativeSourceでWPFバインディングを使用するにはどうしたらいいですか?