何海涛的专栏

点石成金,成就未来

Visual Studio 调试小技巧(1)-根据字符串内容添加断点

在用Visual Studio调试程序时,我们经常需要根据数值添加断点。比如需要当i == 2时中断运行,我们可以添加如下的断点:

根据数值添加条件断点 

 

有些时候,我们需要根据字符串的内容来添加断点。比如我们在调试如下代码:

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.

阅读更多
文章标签: string
个人分类: Visual Studio 2010
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭