2012-10-06 6 views
6

単純なC#コードを作成していますが、Debug.WriteLine("..");が表示されている部分はスキップされます。たとえば:デバッグ中にDebug.WriteLineがスキップされる

WebClient wc = new WebClient(); 

     wc.Encoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); 
     wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(SearchWordsDownloaded); 

     Debug.WriteLine("test"); 
     wc.DownloadStringAsync(new Uri("SomeURL")); 

どうしてですか?

+0

'Flush' *で*問題が解決する可能性があります。また、 'AutoFlush'を' true'に設定してデバッグ用のものを書くこともできます。 – dialer

+0

コードの行を進んでいる間に行が無視される、または "テスト"が設定された宛先に出力されていないと言っていますか? –

+1

WP7 SDKにはフラッシュがありません。 @Cory、私はデバッグモードでステップスルーしている間、またそれを実行させるときにスキップします。 – QKL

答えて

1

スキップできる唯一の方法は、リリース時に実行することです。

ソリューションをクリーンアップし、デバッグモードであることを確認し、このコードセグメントにブレークポイントを追加してF5キーを押します。

+0

私のためではありません、上記のデバッグコンパイルシンボルについての回答を参照してください – userSteve

7

私はこれを見ていました - Debug.WriteLine()ステートメントは、デバッガがアタッチされたデバッグビルドのために飛び越されました。理由は分かりませんが、DEBUGコンパイルシンボルが設定されていませんでした。プロジェクトのプロパティページでビルドセクションを開き、 '条件付きコンパイルシンボル'フィールドに 'DEBUG'(引用符なし)と入力します。そのため、デバッガはDebugステートメントの再入力を開始しました。

+0

これはまさに私のために働いた答えです。感謝します。誰かが、リリース版をビルドするときにDEBUGコンパイルシンボルを追加することの意味を知っていますか? – userSteve

+1

Debug.Foo()呼び出しはコンパイルされたコードのままです。 DEBUGシンボルがなければ、これらの呼び出しは削除されます(コンパイルされたアセンブリには入りません)。 Debug.WriteLine()のようなものはおそらく何もしませんが(書き込む場所がないため)、Debug.Assert()はおそらくアサーションを実行し、アサーションに失敗した場合は例外をスローします。 – redcalx

0

Active Solutionプラットフォームがx86またはx64に設定されている場合は、Debug.Writelineステートメントをスキップしました。構成マネージャーが「任意のCPU」に設定されている場合にのみヒットすることができるようです。

関連する問題