如何放置条件断点来测试CString变量是否为空
How to put a conditional breakpoint to test if a CString variable is empty
所以我有这个简单的代码片段:
CString str;
..................
if ( str.IsEmpty() )
str = spRelease->GetID();
我想在最后一行放置一个条件断点来测试str是否为空。我先试了这个:
str == ""
但是我得到了这个:
Error overloaded operator not found
然后:
str.isEmpty() == 0
得到这个:
Symbol isEMpty() not found
你知道怎么做吗?有什么解决办法吗?
谢谢。
为什么不在最后一行放一个普通的断点呢?您已经知道str是空的。如果你想再次检查你的字符串是否为空,我会使用ASSERT来代替。
如果你真的要检查字符串,你必须检查CString中的m_pszData
,所以你的条件是这样的:
str.m_pszData[0] == ' '
在Visual Studio 6中,你有操作IsEmpty(),注意第一个'I'是大写的。您还可以使用Compare()操作。你使用的是哪个版本的VS ?
我所见过的一种模式是添加这样的代码:
if (some_condition) {
int breakpoint=rand();
}
这将生成一个关于breakpoint
已初始化但未使用的警告,因此很容易记住将其取出。这也允许您测试任何您想要的条件,包括调用函数或其他任何东西,而不必担心调试器的重构。这也避免了一些调试器对条件断点数量的限制。
明显的缺点是不能在调试会话、重新编译、记住将它们取出等过程中添加它们。
相关文章:
- 如何检查变量是否是C++中的地图?
- 如何更好地检查两个 char 变量是否在一组值中?
- 模板变量是否允许在多个翻译单元中并有效合并?
- 如何检查模板类中的变量是否为字符串类型?
- 如何检查 int 变量是否包含合法(非陷阱表示)值?
- "new"创建的实例的所有成员变量是否都存在于堆上而不是堆栈上?
- C++11:16 字节原子<>变量是否在 16 字节边界上自动对齐,从而允许CMPXCHG16B指令?
- 程序如何知道静态变量是否需要初始化?
- 检查私有成员变量是否在一定范围内,如果没有调整
- C++ 如何检查 char 变量是否未定义(未初始化)
- 是否可以检查变量是否位于 L1/L2/L3 缓存中
- 初始化命名空间中的变量是否类似于将它们初始化为类成员?
- 如果输入类型与目标类型不同,"cin"变量是否重置为某个默认值?
- 变量是否会自动转换为函数所需的类型作为适当的参数
- const变量是否可以在具有默认值的参数中赋值(作为可选参数)
- 如何对私有变量是否已更改进行单元测试
- 将常量引用成员设置为临时变量是否安全
- 如何检查类中定义的枚举类型变量是否被分配给?
- 在链接的程序集文件中,我想从 c++ 调用代码访问变量.是否可以在不触发访问冲突的情况下执行此操作?
- "decltype(auto)"变量是否有任何实际用例?