【问题标题】:Why is my Breakpoint Condition not being met when my Breakpoint Condition is being met in Visual Studio?为什么在 Visual Studio 中满足断点条件时不满足断点条件?
【发布时间】:2009-10-28 15:52:36
【问题描述】:

我面前有一段代码遍历一长串 url,当这些 url 包含某种类型的文档时出现问题。我不想看到每次迭代,所以我设置了一个条件断点。

问题在于我不是 C++ 程序员,所以我不得不四处寻找如何做我想做的事,而且我可能做的事情明显是错误的。

我现在的情况是这样的:

(strstr( url, "xlsx") == 0x00000000)

这应该意味着每次 url(这是一个 UNICODE_char* )不包含文字“xlsx” strstr 将返回一个应该匹配条件的空指针,据我所知。从长远来看,我实际上希望它反过来,但由于只有几个“xlsx”网址,我想检查它是否工作,我现在就这样。

嗯,我的条件没有被满足或者至少断点没有被触发。

假设我做错了什么,我复制了与监视表达式相同的值,并在之前的行上设置了一个无条件断点。当我越过我的随机断点时,结果如下所示:

Name                                 | Value
================================================
(strstr( url, "xlsx") == 0x00000000) | true

显然,就监视窗口而言,我的条件可以为真,但不会触发条件断点。

为了进一步实验,我尝试翻转条件,所以它是

(strstr( url, "xlsx") != 0x00000000)

就条件断点而言,这也是错误的,这似乎有点滑稽,因为这意味着它既不等于也不等于空指针值。

这是 C++ 中空值的一些不寻常的属性吗?是否有一些非常明显的东西我错过了,或者语言的一些怪癖导致我完全错过了这艘船?

【问题讨论】:

    标签: c++ visual-studio-2005 breakpoints conditional-breakpoint


    【解决方案1】:

    如果您的 url 是 unicode 字符串,您是否尝试过使用 wcsstr?

    【讨论】:

    • 不,我根本没有——正如我所说的,我不是 C++ 程序员,所以虽然我有相当多的语言可供使用,而且我可以按照我没有的代码真的很了解图书馆。现在我来试一试,结果似乎是一样的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 2013-07-08
    相关资源
    最近更新 更多