繁体   English   中英

如何在 VS2019 中为 C++ 字符串设置条件断点?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM