2014-02-21 6 views
13

Das ist etwas, was ich im Laufe der Jahre von Zeit zu Zeit versucht habe und nie ganz gelungen ist. Ich möchte nur einen bedingten Haltepunkt für Visual C++ 2012 basierend auf Zeichenfolgengleichheit festlegen. Die Variable I testen wollen, istWie bedingten Haltepunkt basierend auf Zeichenfolgevergleich in Visual Studio festgelegt?

string test; 

Ich versuchte

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. 

Antwort

3

Für die Verwendung in Visual Studio, das beantwortet wurde here. Insbesondere kann die in der Antwort von OBWANDO angegebene Zeichenkette verwendet werden, um die Knickpunktbedingung zu setzen. Beachten Sie jedoch, dass es ein bisschen klugy ist. Sie erhalten eine Warnmeldung, wenn der Haltepunkt erreicht wird, obwohl der Debugger beendet wurde. Es scheint keinen Schaden zu verursachen.

+0

Ja, dieser Beitrag beantwortet meine Frage und OBWANDO's Lösung funktioniert auch perfekt für mich. Danke, dass du darauf hingewiesen hast. –

-2

Sie die folgende tragbare und einfache Art und Weise verwenden können:

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

Danke, aber ich suche nach einer Möglichkeit, eine Haltepunktbedingung festzulegen, ohne den Quellcode zu ändern. –

+0

Sie können immer versuchen, test [0] == '' –

Verwandte Themen