【解決方法】コードがデバッグ モードで実行されているかどうかを確認する方法


やあ、
コードがデバッグ モードで実行されている場合にのみ、一部のコード ブロックを実行する必要があります。
これを達成する方法がわかりません。説明できますか??

多くのページをグーグル検索しましたが、役に立たないことがわかりました。

プラタメシュ

解決策 3

Prera​​kによる解決策を見てください。 効果的かつ実際的に、それはおそらくあなたの問題を解決します.

ただし、これは文字通り求められたものではありません。 「コードがデバッグモードで実行されている場合にのみ、コードのブロックを実行する必要がある」と尋ねました。 Prera​​k が指摘した解決策を使用すると、別の結果が得られます。コードのフラグメントを実行することも実行しないこともできますが、これは、コードの 2 つの異なるビルドを作成できるためです。そうでない場合。 アプリケーションがコンパイルされると、何らかの方法で動作します。

つまり、アプリケーションを特定の「モード」で実行することはできません。 代わりに、作成することしかできません 2 つの異なるアプリケーション 2 つの異なる構成では動作が異なります。 1 つの重要なノード: Debug は単なる構成であり、デバッグ自体とは何の関係もありません。 デバッグと関係があるのは、コンパイル オプションです。 必要な数の異なる構成を持つことができます。 構成は、特定の名前で設定された構成セットの単なる傘です。 各構成のオプションを手動で構成します。これらのオプションは、デバッグに関連する場合と関連しない場合があります。 つまり、特定の構成でのみ実行されるコードには注意してください。 不適切なテスト結果の原因となる可能性があります。

言い換えると、 そのようなモードが存在しないため、コードがデバッグ モードで実行されているかどうかを判断できません。.

サプライズ? 🙂

-SA

解決策 1

次のようなディレクティブを使用します

C#
#if DEBUG
    Console.WriteLine("Debug version");
#endif

解決策 2

解決策 4

上記の返信の日付に注意すると、OP には少し遅れる可能性があります 😉
しかし、それが他の人に役立つことを願って、2023年に私が見つけたものは次のとおりです。 https://stackoverflow.com/questions/36418307/visual-c-detect-if-the-program-is-loaded-into-the-visual-debugger[^]

そのリンクが壊れた場合の例を次に示します。

if (IsDebuggerPresent()) printf("Eureka!");

Windows 10 の VS2019 で動作し、「IsDebuggerPresent」をグーグルで検索すると、Microsoft のドキュメントに直接アクセスできます。
――ジョン。

コメント

タイトルとURLをコピーしました