调试手段介绍-如果你有更好的欢迎补充

前言

这也是我在一些面经中看到的问题,好像出现的频率不是很高,咱们仔细总结一下。

常规

VS号称宇宙第一编译器,里面的F5 F9 F10 F11就不多说了,不会断点调试的出门右转。另外像查看变量值这些我也不说了,非常简单。

查看反汇编代码、内存、寄存器

很简单,在程序debug的时候,选择 调试----窗口----反汇编/内存/寄存器就可以查看这些东西了。反汇编都给出了汇编前的代码,可以说非常贴心了。

查看栈区

调试----窗口----调用堆栈

条件断点

有的循环要执行很多次才可能出错,咱们肯定不能傻傻的等着或者一条一条按,咱们得浪费好多时间。咋办?
宇宙第一编译器肯定帮咱们想到了,设置条件断点!你只需要点一下断点下面出现的“设置”按键就可以了!是不是非常人性化?oh对了,命中次数了解一下。

多线程调试

按住Ctrl键不放,接着连续按D T键,能显示[线程]窗口,可从中看到当前调试进程的所有线程。
在这里插入图片描述
然后你可以冻结线程和展开线程:
在这里插入图片描述

gdb调试

关于这个东西我需要单独写一篇来介绍。

分享一段调试经历

在开始加工前需要将一些数据指令发下去,用的是msgqueue,结果上位机以为发送完成了就开始加工,这导致加工后图形在开始阶段少了一些东西。后来检查到是没有反馈造成的,于是加入了pipemsg+event。
当时是咋检查到的呢?先对整个流程进行二分,结果直接就定位到OS,这就很僵硬了。有的时候是第二条指令没有收到,有的时候是第三条指令没有收到。

猜你喜欢

转载自blog.csdn.net/weixin_44039270/article/details/106876287
今日推荐