zoukankan      html  css  js  c++  java
  • 函数断点

    本篇博客是VisualStudio断点调试系列文章的一部分,在本篇文章里,我们将展示函数断点在VS中的怎么样为你节省时间的特性。

    处理重载

    你想调试一个指定的函数,但是这个函数有一些重载。一个选择是找到所有的重载并分别设置断点。

    如果有很多重载,那么会非常消耗时间。另外一个选择是使用函数断点。

    在我们的例子里(with code available to download),你想停在函数IsPrime()上,它有2个重载。

    首先我们要去断点窗口里Debug->Windows->Breakpoints 创建一个断点,点击“new”

    clip_image002

    然后点击 “Break at Function…” 呼出一个新断点对话框。 你可能注意到也可以用快捷键Ctrl+B.

    clip_image003

    输入函数名“IsPrime” 然后点OK。这样它将会把我们带到新的对话框,这里有所有匹配的方法函数,我们可以快速的选择。可以通过点击All按钮来全选。clip_image004

    现在我运行程序,可以命中这个断点在这个版本的调用的 IsPrime函数 。

    clip_image005

    当源代码不能立即用

    函数断点另外一种有用小窍门是设置断点在不是现成的代码里。下面举个例子,我们用C++实现(available for download)。这个例子使用ATL然后我们想debug ATL代密码看看他们怎么工作。而ATL代码可以用,你不可能在你的IDE里打开它。即时你是这么做了,你大概需要一段去找在哪设置断点。

    你可以通过使用函数断点节省你一些时间。在这个例子里,我用CComPtr 与对象CObject1。设置断点在ATL里我用的函数上。同上呼出这个断点窗口。

    clip_image006

    如果我输入ATL::CComPtrBase<CObject1>::Attach函数名,我将设置断点在这个函数上。我也可以选择用通配符输入ATL::CComPtrBase<CObject1>::*来设置断点在所有匹配的函数上。当我这样做之后,这些断点出现在断点窗口,有三个。

    clip_image008

    现在我运行程序,我将会停在这些断点处,VS会把我带到正确的源代码位置上。

    clip_image010

      NativeBreakpointsSample.zip

  • 相关阅读:
    关于Request.Form和动态添加服务器控件
    httpCookies
    简单的重写重置SessionID
    C# 内置类型表
    加密Web.Config(小技巧)
    C#委托实现系统回调
    C#中将字符串转成 Base64 编码(小技巧)
    关于跨域的SessionID的问题
    *.ashx文件
    Session中丢失的问题解决
  • 原文地址:https://www.cnblogs.com/allanxyq/p/3365508.html
Copyright © 2011-2022 走看看