web-dev-qa-db-ja.com

Debug.WriteLineが機能しない

過去に、私が現在使用している2008年より前のバージョンのVisual Studioでは、VB.NETコードで次のようなことをしていました。

System.Diagnostics.Debug.WriteLine("Message")

..出力は出力ウィンドウに送られます。

今はそうではありません。最初に何かを有効にする必要があります。

これに「デバッガのアタッチ」が含まれる場合は、その方法を説明してください。あまり手間をかけずに機能するように思えます。

これはリアルタイムで問題を説明し、すべての私の設定を示すビデオです:

http://screencast.com/t/YQnPb0mJcs

Visual Studio 2008を使用しています。

31
ChadD

すべての良い提案。このヒントが表示されないことに気付いたので、それを言います。app.configファイルで、<clear/> elementトレースリスナー内。

Debugステートメントに使用されるデフォルトのトレースリスナーを含む、トレースリスナーのリストを効果的にクリアします。

これは、app.configファイルでは次のようになります。

<system.diagnostics>
    <trace>
      <listeners>
          <!-- This next line is the troublemaker.  It looks so innocent -->
          <clear/>
      </listeners>
    </trace>
  </system.diagnostics>

App.configファイルにトレースリスナーのプレースホルダーを含める場合は、代わりに次のようなものを使用する必要があります。

<system.diagnostics>
    <trace>
      <listeners>
      </listeners>
    </trace>
  </system.diagnostics>
15
Dan Esparza

[すべての出力ウィンドウのテキストをイミディエイトウィンドウにリダイレクトする]が[ツール]-> [オプション]-> [デバッグ]-> [全般]でチェックされているかどうかを確認します。

または、Console.WriteLine()関数も使用できます。

22
JonnyD

出力ウィンドウを右クリックし、[プログラム出力]がオンになっていることを確認します。

14
PaulS

間違いなくDEBUG定数が定義されていますか?プロジェクトのプロパティ-> Compile-> Advanced Compile Optionsの下でチェックします(DEBUG定数のチェックボックスがあります。チェックされていない場合、Debug.XXXステートメントは実行されます)。

13
Hamish Smith

アプリがリリース構成ではなくデバッグ構成でコンパイルされている場合は、出力ウィンドウに移動します。ただし、Debug.WriteLine()の代わりに、Trace.WriteLine()を使用してみてください(オプションでConsoleTraceListenerを付けて)。

11
Joel Coehoorn

試したり確認したりするいくつかの追加のアイデア:

  • Debug.WriteLineの前にブレークポイントを置き、 System.Diagnostics.Trace.Listeners コレクションの内容を確認します。 DefaultTraceListener が表示されます。何も表示されない場合は、誰も聞いていません。それが問題です。
  • トレースリスナーが構成ファイルやコードなどのどこかでクリア/変更されている可能性はありますか?
  • Visual Studioにパッケージまたはアドインをインストールしましたか?またはサードパーティのライブラリを使用していますか?
  • VSの外部でデバッグメッセージを表示できますか?システムのデバッグ出力を監視して表示する DebugView と呼ばれるSysInternalsアプリケーションがあります。そのツールを実行してから、アプリケーションを実行します。 DebugViewにデバッグメッセージが表示されます。少なくとも、アプリケーションがデバッグメッセージを出力していることがわかりますが、VSはリッスンしていないようです。
  • 出力ウィンドウの内容を調べて、報告されている例外やエラーがないか確認してください。あなたのデバッグ出力はそこにはありませんが、いくつかの手がかりを提供できる何かがあるかもしれません。
7
Mehmet Aras

イミディエイトウィンドウを確認してください。すべての出力がそれにリダイレクトされる可能性があります。

5
Josh Weatherly

私にとって、これはDebug.WriteLineが出力ではなくイミディエイトウィンドウに表示されるという事実でした。デフォルトでのVisual Studio 2013のインストールでは、イミディエイトウィンドウを開くオプションも表示されないため、次の手順を実行する必要があります。

Select Tools → Customize 
Commands Tab
View | Other Windows menu bar dropdown
Add Command...
The Immediate option is in the Debug section.

それができたら、メニューViewOther Windowsに移動し、イミディエイトウィンドウを選択すると、すべてのデバッグ出力が表示されます。

残念ながら、私はプロジェクトで気づかなかった約50のエラーも表示しました...多分私はそれを再びオフにするでしょう:-)

2
Liam

それが起こります。 Visual Studio 2010 Web開発者Express EditionでASP.NET MVCアプリケーションを開発しているときにも、同様の症状が出ます。実行はブレークポイントで中断しません。 System.Diagnostic.Debug.Writelineを実行しても(debug startで実行されていても)出力はなく、web.configには何も問題はありません。

私の回避策は次のとおりです。-Goto project properties-> web-Debuggerセクションで、ASP.NETオプションを確認します

これがこのスレッドに出くわす人を助けることを願っています。

1

ASP.NETアプリケーションでも同じ問題が発生しており、Web.Configに次の行があることがわかりました。

<system.web>
    <trace enabled="false"/>
</system.web>

Trueに変更するだけで、Debug.WriteLineOutputウィンドウ内。

1
Ozair Kafray

Visual Studio Express 2010でも同じ問題が発生しました。デバッグマシンに新たにインストールしましたが、どの提案も機能しませんでした。私は NLog を使用し、回避策としてテキストファイルにログを記録しました。

1
Eternal21

Visual Studio 2013とMSユニットテストでも同様の問題がありました。単体テストメソッドを右クリックし、[テストの実行]を選択すると、Debug.WriteLine呼び出しはイミディエイトウィンドウにもデバッグ出力ウィンドウにも表示されません。私がテストしていたライブラリと単体テストプロジェクト自体の両方で、プロジェクトプロパティのビルドセクションでDEBUG条件付きチェックが行われていました。

Debug.WriteLineステートメントを出力するには、ユニットテストを右クリックして[デバッグテスト]を選択し、ユニットテストを実行するために必要なものをすべて出力します。そうして初めて、デバッグ出力ウィンドウにデバッグ出力が書き込まれました。

1
Dean Lunz

押してください F5 デバッグモードを開始します( Ctr+F5)。

F5 デバッグを開始する

CTRL+F5デバッグなしで開始

0