質問

回答の概要

デバッガートラップを回避するには、CTRL+Cのトラップを避けるために、最初にVisual Studioホスティングプロセスをオフにします(Project Properties、Debug Tab)

Visual StudioのExpressバージョンを使用している場合、それだけです。

Proまたはより良いバージョンのVisual Studioを使用している場合、Debug>例外をさらに開くことができます...、Win32例外、およびCtrl+Cをチェックしてください。

代替として、Ctrl+Cが脳に固定されている場合を除き、デバッグ時にCtrl+Breakを使用できます。

オリジナル

以下が編集されています。ハンスは彼の答えを撤回したようですが、彼の質問は私が問題の声明を絞り込むのに役立ちました:

特別な明確さ

  • Ctrl+Cの動作を変更したくありません。
  • 回避策を探していません。
  • 私は単にデバッガーを望んでいます いいえ デバッグセッション中にCtrl+Cが押されたときに破損します。

次の例が考案されていることに注意してください。それはただ行動を示すためです。気を散らしているので、読み取りキーラインを変更しました。

デバッグ(実行)次のプログラム:

class Program
{
    static void Main()
    {
        System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
    }
}

Ctrl+cを押します。デバッガーは、スリープラインにブレークポイントを設定するかのように壊れます。

これをどのようにオフにしますか? Ctrl+Cのためにデバッガーをまったく壊したくありません。

これは、VS2008 Proで自宅では発生しません。

私は今、VS2008 ExpressとVS2010 Express(簡単にテストできる唯一のエディション)で試しましたが、それらはすべてそれを行います。これにより、それが明示的な動作であるか、オン/オフを切り替えるためのどこかに設定があると信じるようになりました。

  1. 任意のバージョン/エディションでこれをオン/オフにする設定はありますか?
  2. この設定は、VS2008、VS2010、またはその両方に存在しますか?
  3. 設定はExpress Editionsで公開されていますか?
  4. VS2008 Proの私のインスタンスはユニークですか?は、継続したVisual Studioの古いバージョンで公開された設定です(多くの新しいバージョンでVS設定を実行しました)。
役に立ちましたか?

解決 2

答えを見つけました、それはデバッグ例外オプションです。初めて見逃した方法はわかりませんが、ここにあります:

デバッグ - >例外... win32例外-control -c

これはVS2008 Proです。

また、オプションが実行することも確認できます いいえ Express Editionsに存在します(Win32例外ノード全体が欠落しています)。

VS2010 Pro(まだ?)を所有していないので、私が残した唯一の質問は次のとおりです。Win32例外ノードと、VS2010 Pro EditionにはControl-Cの例外が存在しますか?

他のヒント

おそらくこれは今では一般的な知識ですが、Visual Studioでデバッグされている間にCTRL-Cを使用してTopshelfアプリケーションを停止しようとするとき、私たちは同じ問題を抱えていました。最後に、スローされたときにコントロール-C win32例外をキャプチャする必要があると考えました(debug->例外、またはctrl d、e open win32例外)。 (それがサービスを実行しています)プロパティとデバッグタブで、オプションを確認してください無管理コードデバッグを有効にします。 MS Visual Studio 2010 Proバージョン10.0.40219.1 SP1RELを使用しています。

あるようです VS 2010デバッガー / .NET 4のバグ Ctrl+Cが管理されたデバッグのみを備えたコンソールアプリケーションで押されたときに、奇妙な「シンボルなし」ウィンドウを取得すること。ミックスモードのデバッグを有効にするためのワークアラウンドがあります。バグには「固定」と書かれていますが、他の人がこれにヒットしている場合は、接続バグに報告してください。

Topshelfライブラリを使用してWindowsサービスをホストするサービスをデバッグしながら、これを見ました。

https://connect.microsoft.com/visualstudio/feedback/details/524889/debugging-console-application-that that handles-console-cancelkeypress-is-broken-in-net-4-0?wa = wsignin1。 0

関連リンク: いちばん上の棚, 、 (から来た 大量輸送)

更新:Connect BugはVS 2010 Beta用のようですが、最新のHotfixesであると思われるVS 2010 RTMを使用して、マネージドのみのデバッグで奇妙な「ソースなし」を見ています。

CTRL-Cは、「ブレーク」操作のためにコンソールウィンドウ自体に直接配線されています。新しいコンソールアプリを開き、何かを開き、すぐにCtrl-Cを押します。それはpingを中止します。

VS Proにはこの動作がなかったと言いました。 Vs Expressはそうではないのに対し、それ自体がSetConsoLeModeを設定するだけだと思います。ただし、CTRL-Cを無視し、SetConsoLeModeで自分自身を直接入力するように扱うようにコンソールに直接指示することができます。詳細については、このリンクを参照してください。

これがC#の使用例です。

プログラムの開始時に選択したモードオプションを使用して電話をかけてください。

お役に立てれば!

m

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top