简单介绍下visual studio如何调试(debug)

用的繁体的visual studio 2012版本来示例。

debug设置断点的时候一定要放在实际执行的代码上(前面的灰色区域)。要确保是在debug的模式下,而不是release(这将会导致程序被重新安排)。当断点运行时,在断点处会显示黄色箭头表示运行到此处,指示当前指令所在的位置,此时按下continue按钮将会和平常一样继续执行程序。

1.F11时,没有开始执行代码,只设置函数堆栈框架,此时鼠标放在message 上会显示该变量被设置为 “hello world”。

 2.再按下F12时,从main.cpp跳转到log.app,此时黄色箭头在代码前,意味着当前还没有执行该行代码。

此时再按下F10时,打印出"hello world".

 

 再按下F10则会回到main.cpp,箭头还在原位置,再按下则会到达下一个位置.

此时箭头虽然指向该行,但实际还并未执行这一行,即实际创建并设置变量的这行,当前调试器显示的是内存,变量目前未设置任何值,是一个未初始化的内存,但也只是显示给我们的,并不是内存实际的值。

 当前版本是繁体,,最下面的autos和locals会向你展示局部变量或对自己重要的变量。最后一个watch会让我们监控变量。要查看使用的話只需要点击输入需要的再确认即可。

 当程序逐步完善时,这些值将更新到内存实际存在的有内容。这时需要内存视图。在调试->windows->内存>内存1.

 中间显示数据实际值,是以十六进制表示,右边是对这些数字的ASCIL解释。当我们想要知道a的实际存储在程序内存的位置时,要知道它的内存地址,可在上面输入   &a     代表地址。为什么未初始化的值为cc,意味着它是一个未初始化的堆栈内存。

 

 这时a的值开始变化,可以设置是否为十六位显示。这四个字节(byte)的内存被设置为8,这里两个数字等于一字节(byte)。这也是为什么用十六进制数字表示,每两个十六进制数字总是对齐为一个字节内存。

 运行到string这行时,它是实际内存,能看到字符串的内存地址,就是结尾为90的数字,将地址复制到watch窗口显示,会看到如下图显示内容,前面显示数字,后面则为ascil解释,为“hello"。

 运行到如下时,在watch输入 ”&c” 可以看到 c 的值以及后面它对应的ascil表示。

 如果一直按F10,将会一直在for循环内进行,直到结束循环后跳出。

如果我不打算直接按跳出,而是要运行完for循环再到下面,则可以再log函数前设置个断点,再点击继续。程序将运行直到下一个断点。此时将运行到显示如下内容。

一般的Debug过程就是如此。

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 Visual StudioDebug 技巧,有一些常用的方法可以帮助你更有效地调试代码。以下是一些常见的技巧: 1. 设置断点:在你认为可能出现问题的代码行上设置断点,以便在程序执行到该行时暂停。可以通过点击行号旁边的空白处或者使用 F9 快捷键来设置断点。 2. 单步执行:使用 F10 键进行单步执行,逐行运行代码,并观察变量值的变化。这有助于你了解程序的执行流程。 3. 监视窗口:在调试时,可以打开监视窗口来监视变量的值。右键点击变量并选择“添加到监视”即可将其添加到监视窗口。这样你可以实时查看变量的值。 4. 自动窗口:在自动窗口中,可以查看当前活动函数的局部变量和参数值。通过调试菜单或者快捷键 Ctrl + Alt + V, L 来打开自动窗口。 5. 条件断点:设置断点时,你还可以指定条件(如某个变量的值满足特定条件)来触发断点暂停。在设置断点时,右键点击断点并选择“条件”。 6. 异常处理:在调试选项中,你可以指定在遇到特定类型的异常时中断程序的执行。这对于捕获和处理异常非常有用。 7. 数据视图:通过 Visual Studio 的数据视图功能,你可以查看复杂数据结构(如数组、集合、对象等)的内容,而不仅仅是变量的值。可以右键点击变量并选择“查看数据”。 这些只是一些常见的 Debug 技巧,Visual Studio 还提供了许多其他强大的调试功能和工具。掌握这些技巧可以帮助你更快地定位和解决问题。如需更详细的信息,请参考 Visual Studio 的官方文档或者在线资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值