Хотя мне пришлось обойти это, используя что-то похожее на ответ Брэда (плюс использование DebugBreak () , чтобы вырваться из кода), иногда редактируя / перекомпилируя / перезапуская немного кода или это слишком много времени или просто невозможно.
К счастью, по-видимому, можно вписаться в фактических членов класса std :: string. Здесь упоминается один из способов - и хотя он специально вызывает VS2010, вы все равно можете получить доступ к отдельным символам вручную в более ранних версиях. Так что, если вы используете 2010, вы можете просто использовать приятные strcmp()
функции и тому подобное ( больше информации) , но если вы похожи на меня и у вас еще есть 2008 или более ранняя версия, вы можете придумать с неровной, ужасной, но функциональной альтернативой, установив условную точку останова, например:
strVar._Bx._Ptr[0] == 'a' && strVar._Bx._Ptr[1] == 'b' &&
strVar._Bx._Ptr[2] == 'c'
для прерывания, если первые три символа в strVar - «abc». Конечно, вы можете продолжать использовать дополнительные символы. Ужасно ... но это сэкономило мне немного времени.