Visual Studio でデバッグをしているとき、
F11 でステップイン実行していたら、 operator にステップインして
そこはもうわかってるから
ってなことになることはないですか?
ソースがどんどん開かれてウザくないですか?
そんなときに、NoStepInto です。
レジストリエディターで、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\NativeDE\StepOver※VS2008 の場合。64bit では HKLM\SOFTWARE\Wow6432Node\...
に、文字列を新規で作成します(名前は何でも良い)。そこに、
\scope:operator\oper:=NoStepIntoと記述することで、すべての operator オーバーロードにステップインしないようにできます。
その他の例を以下に書いておきます。
- CString[A|W|T] のすべての関数、 operator へのステップインをしない。
\scope:CString.*\:\:.*=NoStepInto
- CString[A|W|T] のすべての関数へのステップインをしない。
\scope:CString.*\:\:\funct:=NoStepInto
- CString[A|W|T] のすべての operator へのステップインをしない。
\scope:CString.*\oper:=NoStepInto
- CString[A|W|T] の CompareNoCase だけステップインをしない。
\scope:CString.*\:\:CompareNoCase=NoStepInto
/scope: はスコープにマッチ。
/funct: は関数にマッチ、
/oper: で operator にマッチするようです。
NoStepInto ではなく StepInto にするとステップインすることになります。
あと、デバッグ実行する度にレジストリが読み込まれるようなので、
レジストリを変更しても Visual Studio を立ち上げ直す必要はありません。
(最初知らずに何度も立ち上げ直してました。)
追記
コード例を追加。void func(LPCTSTR lpszPath); int main(int argc, const char* argv[])) { CString strPath = "test"; func(strPath); // ここで、 operator LPCTSTR () にステップインしない return 0; }
0 件のコメント:
コメントを投稿