11

私は VS2010 で C#.NET クラス ライブラリ プロジェクトに取り組んでいます。私のプロジェクト設定 -> デバッグ設定では、非常に単純な jscript ファイル (test.js) を実行する外部プログラム (C:\Windows\SysWOW64\wscript.exe) を開始するようにプロジェクトを設定しています。スクリプトは単にクラスのインスタンスを作成し、そのメソッドの 1 つを呼び出します。

問題は、デバッグを開始したときに、VS2010 がどのブレークポイントでも停止しないことです。VS2008 でまったく同じプロジェクトを開くと、ブレーク ポイントで停止します。ブレークポイントがヒットするのを妨げている新しい設定がどこかにありますか? 他の誰かがこの問題に遭遇しましたか?

4

12 に答える 12

11

私の最初のチェックは、「Just My Code」を無効にすることです

  • ツール -> オプション
  • デバッガ
  • 「自分のコードのみを有効にする」のチェックを外す

シナリオをもう一度試してください。

于 2010-08-23T20:32:20.593 に答える
10

この問題を解決するには、コンポーネントを使用して次のデータでデバッグするアプリケーションの構成ファイルを作成します。

<?xml version="1.0"?>
<configuration>
  <startup>
     <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

このファイルを使用して、デバッグに適切なランタイム バージョンを使用するようデバッガに指示します (デバッガはデフォルトでバージョン 4.0 を使用しているようです)。

于 2011-03-09T15:42:28.637 に答える
6

Visual Studio 2012 コンソール アプリケーションをデバッグできなかった理由を 1 日かけて調べましたが、答えは恥ずかしいものでした。

「RELEASE」モードで実行していました。

明白なものを見つけるのが難しい場合があります。

于 2012-12-18T22:11:22.747 に答える
3

Visual Studio IDE を閉じて開きます。これで動作します。私にとっても、同じ問題に直面しています。この方法で克服しました

于 2015-04-16T08:58:56.547 に答える
2

なぜそれが起こるのか答えることはできませんが、回避策を提供することはできます。

  1. 含む

    using System.Diagnostics;
    
  2. コードの最初(たとえば、クラスコンストラクター)に次の行を配置します。

    #if (DEBUG)
                    while(!Debugger.IsAttached);
                    Debugger.Break();
    #endif
    
  3. デバッグを開始します。

  4. メニューツール→プロセスにアタッチ
  5. プロセスにアタッチします。

ブレークポイントはコードでトリガーする必要があります。他のブレークポイントもトリガーする必要があります。

于 2010-08-24T13:21:41.637 に答える
0

理由が間違った .NET ランタイム バージョン (これは私の問題でした) である場合は、構成ファイルを作成する代わりに、[プロセスにアタッチ] ダイアログで適切なバージョンを選択するだけです。

ダイアログで、[アタッチ] の横にある[選択] をクリックし、 [自動... ] から [これらのコード タイプをデバッグ] に切り替えて、正しいバージョンを確認する必要があります。

これも問題である場合は、ブレークポイントに「シンボルが読み込まれていません」というメッセージが表示された可能性があります。適切なバージョンを選択するとすぐに、このエラーが報告されなくなったことがわかります。

于 2013-04-16T08:04:03.567 に答える
0

問題は、ブラウザがキャッシュされたバージョンのページを使用している可能性があります。ブラウザ fx add ?NONSENSE=1234 のアドレス行に、ナンセンスな余分なクエリ文字列を追加してみてください。最終的にこのクエリでページが異なって見えるかどうかがわからないため、ブラウザは強制的に新しいバージョンの Web ページを使用します。 . 次回は ?NONSENS=1235 を使用します。

于 2014-11-24T09:58:27.007 に答える
0

同様の問題が発生しましたが、CLR プロジェクトで発生しました。CLR プロジェクトに古い C++ 構文がありました。ツール>オプション>デバッグ>一般で「マネージド互換モードを使用」を有効にした後、ブレークポイントに到達し始めました。

于 2016-07-21T08:12:24.603 に答える
0

いくつかの理由が考えられます。通常、間違ったバージョンに対してデバッグしようとしていることが原因です。

これらのアクションは、約 80% の確率で機能します。

  • 最新のコードを入手する
  • 掃除
  • 再構築
  • IIS を再起動する
  • 再試行

うまくいかない場合は、[デバッグ] > [ウィンドウ] > [モジュール] に移動し、関連する dll がある場合は、それを右クリックしてシンボルを読み込みます。

リストにない場合は、とにかくコードを実行してみてください。ブレークポイントにヒットしないと表示されていても、必要なシナリオに入るまで dll がロードされないことが原因である場合があります。dll に依存するシナリオを試してみてください。とにかくブレークポイントにヒットする可能性があります。

もう 1 つのアイデアとして、ブラウザを再起動してください。古い dll から何かがキャッシュされている可能性があります。

于 2013-01-30T02:34:20.253 に答える