首页 > 编程 > .NET > 正文

分享Visual Studio原生开发的10个调试技巧

2024-07-10 12:44:49
字体:
来源:转载
供稿:网友
最近碰巧读了Ivan Shcherbakov写的一篇文章,《11个强大的Visual Studio调试小技巧》。这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧。我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧。(如果你是工作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的文章),下面是我的整理的一些技巧:

异常中断 | Break on Exception
Watch窗口中的伪变量 | Pseudo-variables in Watch Windows
符号越界后查看堆对象 |
查看数组的值
避免进入不必要的函数
从代码启动调试器 | Launch the debugger from code
在Output窗口打印
隔离内存泄漏
调试发行版 | Debug the Release Build
远程调试


技巧1: 异常中断

在处理被调用之前,异常发生时可以 启动调试器进行中断,可以让你在异常发生后立即调试程序。操作调用栈便于你去查找异常发生的根本原因。

Vistual Studio允许你去指定想要中断的异常类型或者特殊异常。选择菜单Debug>Exceptions弹出对话框,你可以指定原生的(或者托管的)异常,除了调试器自带的一些默认异常,你还可以添加自己的自定义异常。

下面是一个std::exception 异常抛出时调试器中断的例子。

更多阅读:

  • 1.  异常抛出时如何中断
  • 2.  如何添加新的异常 技巧2:Watch窗口中的伪变量

    Watch窗口或QuickWatch对话框提供一些特定的(调试器可识别的)变量,被称为伪变量。文档包含以下:

    $tid—–当前线程的线程ID
    $pid——进程ID
    $cmdline———-启动程序的命令行字符串
    $user———-正在运行程序的账户信息
    $registername—–显示寄存器registername 的内容
    不管怎么样,关于最后一个错误的伪变量是非常有用的:

    $err——–显示最后一个错误的错误码
    $err,hr—显示最后一个错误的错误信息

    更多阅读:伪变量

    技巧3:符合越界后查看堆对象

    有时候,在调试符号越界后,你还想查看对象的值,这个时候,watch窗口中的变量是被禁用的,不能再查看(也不能更新),尽管对象仍然存在。你如果知道对象的地址,可以继续充分地观察它。你可以将地址转换为该对象类型的指针,放在watch窗中。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表