2014-02-21 55 views
13

這是我多年來不時嘗試的東西,從來沒有成功過。我只想爲基於字符串相等性的Visual C++ 2012設置一個條件斷點。我想測試的變量是如何在Visual Studio中基於字符串比較設置條件斷點?

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. 

回答

3

在Visual Studio中使用,這已經回答了here。特別是,OBWANDO答案中提供的字符串可用於設置斷點條件。但是,請注意,這有點klugy。即使調試器已停止,您仍將在收到斷點時收到警告消息。它似乎沒有造成任何傷害。

+0

是的,該帖子回答了我的問題,OBWANDO的解決方案也適用於我。感謝您指出了這一點。 –

-2

您可以使用下面的便攜和簡單的方法:

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

謝謝,但我正在尋找一種方法來設置斷點條件而無需修改源代碼。 –

+0

您可以隨時嘗試測試[0] =='' –