Visual Studio 调试小技巧(1)-根据字符串内容添加断点
2015-07-13 12:03
363 查看
在用Visual Studio调试程序时,我们经常需要根据数值添加断点。比如需要当i == 2时中断运行,我们可以添加如下的断点:
有些时候,我们需要根据字符串的内容来添加断点。比如我们在调试如下代码:
我们希望当运行到Trace(string)时,如果字符串string为”Two”时能中断运行。如果我们和根据数值添加断点一样的方法,添加如下断点:
当我们运行上述代码时,会发现即使string的内容”Two”时,运行并没有中断。这是因为==运算符比较的是两个字符串的地址而不是内容,因此上述断点并不能满足我们的需求。
Visual Studio考虑到程序员经常会根据字符串的内容添加断点,因此在添加断点这个功能上为字符串做了特殊的支持。我们在根据字符串内容添加断点时,可以使用strcmp等函数来设置断点。
于是在上述示例中,我们可以用strcmp函数来添加如下断点:
Visual Studio中的添加断点功能中支持的字符串函数有:strlen, wcslen, strnlen, wcsnlen, strcmp, wcscmp, _stricmp, _wcsicmp, strncmp, wcsncmp,_strnicmp, _wcsnicmp, strchr, wcschr, strstr, wcsstr.
有些时候,我们需要根据字符串的内容来添加断点。比如我们在调试如下代码:
void CVSDebugTricksDlg::OnBnClickedButton1() { char* string; for(int i = 0; i < 5; ++i) { string = GetString(i); TRACE(string); } } char* CVSDebugTricksDlg::GetString(int number) { switch (number) { case 0: return "Zero"; case 1: return "One"; case 2: return "Two"; default: return "Other"; } }
我们希望当运行到Trace(string)时,如果字符串string为”Two”时能中断运行。如果我们和根据数值添加断点一样的方法,添加如下断点:
当我们运行上述代码时,会发现即使string的内容”Two”时,运行并没有中断。这是因为==运算符比较的是两个字符串的地址而不是内容,因此上述断点并不能满足我们的需求。
Visual Studio考虑到程序员经常会根据字符串的内容添加断点,因此在添加断点这个功能上为字符串做了特殊的支持。我们在根据字符串内容添加断点时,可以使用strcmp等函数来设置断点。
于是在上述示例中,我们可以用strcmp函数来添加如下断点:
Visual Studio中的添加断点功能中支持的字符串函数有:strlen, wcslen, strnlen, wcsnlen, strcmp, wcscmp, _stricmp, _wcsicmp, strncmp, wcsncmp,_strnicmp, _wcsnicmp, strchr, wcschr, strstr, wcsstr.
相关文章推荐
- maskView 加载 CAGradientLayer
- linux中的硬连接和软连接
- UILabel iOS添加文本控件
- [LeetCode][Java] Combination Sum II
- STL源码剖析----vector
- 时间复杂度
- 广播
- 欢迎使用CSDN-markdown编辑器
- eclipse Failed to create the part's controls 解决方法
- net start命令发生系统错误5和错误1058的解决方法
- 目前比较全的CSS重设(reset)方法总结
- STL源码剖析---迭代器
- 更改git bash默认的路径
- bootstrap 基础知识学习(图片+网格系统)
- Android Studio推荐几个非常有用的工具
- 也来说说C#异步委托(转)
- AppCan 7月回归经典,8小时帮你快速充电!
- Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏
- 【Nginx】磁盘文件写入飞地发
- pthread_cond_wait , pthread_cond_signal