2012-04-17 8 views
2

デバッグ中にF11を押して機能に入ることがよくあります。このプロジェクトでは、私は変数を設定しているかどうかをチェックしていない場合は私にアサーションを与えるRAIIラッパーであるeverwhereプロパティを使用します。それは役に立ちました。ビジュアルスタジオに飛ばしてもらうように教えてください。

しかし、今F11がこのプロパティに入るので、デバッグは面倒です。何とかそれをスキップできますか?属性、キーワード、何かを書くことによって?

私は、これはあなたがマネージコードを扱っているときに設定するのはとても簡単ですVS11beta

+0

この管理コードまたはアンマネージコードはありますか? –

+0

@CodyGray:ああ、タグ付けするのを忘れてしまった。そのアンマネージC++を使用して –

+0

あなたはF10を意味しますか? –

答えて

3

を使用しています。 DebuggerHiddenAttributeクラスを使用して関数を手動でマークしたり、「プロパティと演算子をステップオーバーする」といった組み込みのデバッガ設定を有効にすることもできます。

Visual Studioでは、ネイティブC++コードでは、自動的に特定の関数をステップオーバーすることはできません。 (少なくとも、それはVS 2010までサポートされていなかった - VS 11で遊ぶ時間がなかったので、彼らが私たちの色をすべて盗んだという事実を補うために私たちが与えたものであるかどうか確認していた。)

基本的に
How to Not Step Into Functions using the Visual C++ Debugger

、あなたは(VS 2010のための)次のレジストリキーを編集します:

あり回避策です、しかし、前アンディPennellのブログに長い間、文書化

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\NativeDE\StepOver 

または64ビットアプリケーション用:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\NativeDE\StepOver 

デバッガによって関数と照合される正規表現を指定します。あなたは、デバッガがオーバーロードされた演算子にステップしたくない場合は

は、たとえば、あなたは次の式を使用することができます:ブログ記事内免責事項として

\scope:operator\oper:=NoStepInto 

を言う:

これは文書化された機能ではありません。明らかにここでこの "ドキュメント"を読んでいるのですが、それはMicrosoftがサポートしているのではなく、正式にテストされたことがないため、動作することが保証されていないということです。将来のバージョンでの存在または最新バージョンへの更新は保証されません。

+0

明らかにレジストリキーの構文はVS2010で変更されています。今度は 'boost \:\:shared_ptr。*'のようなものを使用して 'boost :: shared_ptr。*'を実行しないようにする必要があります([here](http://kennyknecht.blogspot.com/2010/05/ visual-studio-2010-nostepinto.html))) – Praetorian

関連する問題