I've used this:
[ExecutionControl]
C_str::* = NoStepInto
Anyway debugger always steps into C_str class' methods.
I know this is undocumented, but automatic expansion in the autoexp.dat
works fine on .NET.
Any idea how to prevent debugger stepping into specific functions/classes?
Thanks,
- Michal
"Michal Bacik" <mic...@lonelycatgames.com> wrote in message
news:erc$sIvuCHA.1848@TK2MSFTNGP09...
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.0\NativeDE\StepOver]
"10"=".*CString.*=NoStepInto"
"15"="ATL\\:\\:.*=NoStepInto"
"Michal Bacik" <mic...@lonelycatgames.com> wrote in message
news:erc$sIvuCHA.1848@TK2MSFTNGP09...
Thanks a lot.
- Michal
"Bill Boris [MSFT]" <bbo...@online.microsoft.com> wrote in message
news:e92SDZ0uCHA.2000@TK2MSFTNGP11...
The regex string .*CString.* means zero or more of any char, CString, then
zero or more of any char, i.e. any function name with CString anywhere in
it.
The ATL regex string is ATL\:\:.* - the colons have to be escaped for regex
reasons. The double escaping is required as this example came from a REG
file. This string means ATL, then two colons, then zero or more of any char.
Remember this feature is not officially documented or supported.
Andy
--
This posting is provided "AS IS" with no warranties, and confers no rights
"Michal Bacik" <mic...@lonelycatgames.com> wrote in message
news:#gxFF6UvCHA.2304@TK2MSFTNGP10...
RSClockMgr::Get=NoStepInto
My registry entry looks like:
"000"="RSClockMgr::Get.*=NoStepInto"
Doesn't work.
2 other things that didn't work:
"000"="RSClockMgr\\:\\:Get.*=NoStepInto"
"000"=".*RSClockMgr.*=NoStepInto"
Any ideas?
For testing this I would close down .NET, click on the .reg file I
created. I clicked OK to enter it into the registry. I checked to make
sure it put it in there correctly. Then I ran .NET, loaded up my
project, ran it and tried to step into a function.
And the header I'm using for the .reg file is:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.0\NativeDE\StepOver]
/*
We read the inclusion/exclusion list from the registry at
PRODUCT_ROOT\NativeDE\StepOver
Each string value in that RegKey should have a decimal number for its name
and a
value in the following format:
RegExp=[No]StepInto
Where RegExp is a regular expression per the standard Visual Studio
regular
expression format, with the following additional escapes:
\cid: A C/C++ identifier
\funct: A C/C++ function name
\scope: A set of class/namespace specifiers for a function (i.e.,
ATL::CFoo::CBar::)
\anything: any string
\oper: a C/C++ operator
Due to an oversight, the items are evaluated in descending numeric
order instead of ascending order: the '20' rule will match before
'10'. The first matching rule is used. If no matching rule is
found, we step into. (i.e., there is an assumed entry of
MAX_INT \anything:=StepInto
examples:
---------
Don't step into members of CString[AWT], etc.:
1 \scope:CString.*\:\:.*=NoStepInto
Don't step into overloaded operators:
10 \scope:operator\oper:=NoStepInto
Don't step into ATL:: except for CComBSTR's non-operator members:
20 ATL\:\:CComBSTR::\funct:=StepInto
10 ATL\:\:.*=NoStepInfo
Don't step into templated things, unless they're merely templated
functions in a non-templated class:
20 \scope:\funct:=StepInto
10 .*[\<\>].*=NoStepInto
*/
-Jay
--
This posting is provided "AS IS" with no warranties, and confers no rights
"Visual C# Team" <csh...@microsoft.com> wrote in message
news:e8Q1MBNwCHA.2532@TK2MSFTNGP10...
Here's what you should check:
1. Make the numbers unique for each entry
2. Make sure you have two \\ in .reg files, which makes one \ in regedit.
3. If items are in a namespace, and you used 'using' on that namespace, you
still need the full namespace in the entry:
std::string::string
Try using just a very single simple entry, for a simple function, and add
complexity as you go, until you get what you want.
Also, take a look at my other post from 5 minutes ago with the
"documentation" for this "feature". "thanks".
"jay"
--
This posting is provided "AS IS" with no warranties, and confers no rights
"Garner Halloran" <garner....@redstorm.com> wrote in message
news:O$tXQP7xCHA.616@TK2MSFTNGP11...
For my example, I got my Get function to work as:
RSClockMgr\\:\\:Get()=NoStepInto
I'm still having trouble excluding specific overloaded operators in my
own classes. Since it's such a pain to test this, I'll see if anyone
can help:
I have a string class with an overloaded operator[]. Here is what I've
tried:
RSString\\:\\:operator[]=NoStepInto
RSString\\:\\:operator\\[\\]=NoStepInto
RSString\\:\\:operator\oper=NoStepInto
All to no avail. And I'm not looking forward to figuring out how to not
step into operator[] on our templated array class :)
"7"="RSArray\\<.*\\>\\:\\:operator.*=NoStepInto"
That makes it so you don't step into any overloaded operators. If
anyone else has any other classes they want to share, this might be a
good thread to post it to.