[英]How to set a conditional breakpoint for C++ strings in VS2019?
我正在嘗試為我的調試設置一個條件斷點,但 VS 不斷向我返回此錯誤:
如果運算符 != 是為字符串定義的,怎么會這樣?
變量錯誤是std::string
您可以采取許多解決方法,例如,編寫您的條件的更好方法是:
!errors.empty()
您還可以使用size()
與 0 進行比較, c_str()
返回一個 C 字符串,您可以針對\0
測試第一個元素,等等。
至於您的行不起作用的原因是條件調試器很可能無法解析重載的運算符。 也許檢查非隱式構建的string
(即error != string{}
)會更好,或者使用更新的 VS 版本,但實際上你可以看到這是多么浪費,而不是僅僅檢查empty()
函數結果.
暫時將這樣的內容添加到您的代碼中可能會這樣做:
const auto s = string_i_want_to_test_to_see_if_its_empty.c_str ();
然后對於條件斷點,表達式將是:
s [0] != 0;
在添加斷點之后立即將該斷點放在該行上。 希望在調試版本中,它不會得到優化。 如果是這樣,我相信你會想辦法解決它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.