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

Как установить условную точку останова на основе сравнения строк в Visual Studio?

Это то, что я пытался время от времени на протяжении многих лет и никогда не преуспевал. Я просто хочу установить условную точку прерывания для Visual С++ 2012 на основе равенства строк. Переменная, которую я хочу проверить,

string test;

Я пробовал

test == "foo"
=> The breakpoint cannot be set. no operator "==" matches these operands

test == string("foo")
=> The breakpoint cannot be set. no operator "==" matches these operands

test.compare("foo") == 0
=> The breakpoint cannot be set. This expression has side effects and will not be evaluated.

strcmp(test.c_str(), "foo") == 0
=> The breakpoint cannot be set. This expression has side effects and will not be evaluated.
4b9b3361

Ответ 1

Для использования в Visual Studio на это был дан ответ здесь. В частности, строка, предоставленная в ответе OBWANDO, может использоваться для установки условия точки останова. Заметьте, однако, что это немного klugy. При достижении точки останова вы получите предупреждение, даже если отладчик остановлен. Это не наносит никакого вреда.

Ответ 2

Вы можете использовать следующий переносной и простой способ:

if (!test.compare("foo")) {
    int dummy = 0; // any statement, put breakpoint here
}