Подтвердить что ты не робот

Как пропустить общие классы в VS 2008 при входе в систему?

Как пропустить общие классы в отладчике VS 2008 при входе?

Например, я не хочу, чтобы отладчик входил в любой из классов std::. Как я могу это достичь?

Я нашел способы сделать это в VS 2005 и ранее, но не 2008

4b9b3361

Ответ 1

Вы можете сделать это, введя записи в реестр (я знаю, это отстой). Ключ, который вы ищете, варьируется от 32 до 64 бит. Для 32-битных систем ключ

HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\NativeDE\StepOver

Если вы используете 64-разрядную ОС и 32-разрядную Visual Studio, ключ

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

Ключ Wow6432Node представляет собой ключ для 32-разрядных приложений, работающих на 64-битных системах. (Sidenote: поиск в реестре для "_RTC_CheckEsp", вероятно, приведет вас в нужное место, это запись по умолчанию в Visual Studio 9)

Синтаксис должен быть вам знаком, но в качестве примера простая запись может быть строковым значением boost::.*=NoStepInto, которое позволит отладчику перейти в Boost. См. http://www.cprogramming.com/debugging/visual-studio-msvc-debugging-NoStepInto.html для некоторых других примеров.

Надеюсь, что это поможет:)

Ответ 2

Взято из http://www.highprogrammer.com/alan/windev/visualstudio.html:

Предотвращение шага в вещи

Часто бывает полезно избегать вхождения в какой-то общий код, например, конструкторы или перегруженные операторы. autoexp.dat предоставляет эту возможность. Добавьте раздел "[ExecutionControl]". Добавьте ключи, где ключ - это имя функции, а значение - "NoStepInto". Вы можете указать звездочку (*) в качестве подстановочного знака в качестве первого набора двоеточий для пространства имен или класса.

autoexp.dat читается только при запуске Visual Studio.

Чтобы игнорировать функцию myfunctionname и все вызовы класса CFoo:

[ExecutionControl]
myfunctionname=NoStepInto
CFoo::*=NoStepInto

Чтобы игнорировать конструкцию и назначение MFC CStrings: (Обратите внимание на extra = в CString:: operator =.)

[ExecutionControl]
CString::CString=NoStepInto
CString::operator==NoStepInto

Чтобы игнорировать все вызовы ATL:

[ExecutionControl]
ATL::*=NoStepInto