vs调试
文章平均质量分 57
优秀的邓宗磊
这是一个优秀的人呢
展开
-
c++程序调试中断点的基本使用方法
程序调试:断点断点:用于阻塞进程方便程序员进行监视的工具。使用方法:代码最左侧点击生成断点。光标所在行按f9等。禁用断点:鼠标移至断点右键菜单禁用,用处是将暂时不用的断点消除阻塞进程的功能而保留其在代码中的位置。Ctrl+f9。在菜单:调试-》窗口-》断点,可打开断点信息窗口查看所有断点信息,并进行删除,禁用等管理,因为该窗口包含了该项目中的所有断点,所以管理起来非常方便。命中次数指的是当前调试过程中断点处已经经过的次数。红色小球是正常断点。白色小球是被禁用的断点。白色小球加个感原创 2021-11-11 22:10:07 · 10165 阅读 · 0 评论 -
c++代码调试,代码自测,打上断点后启动调试和多种调试方法
启动调试,程序运行前调试,程序自测:快捷键f5在代码开发的过程中进行调试,一般用于自己测试自己开发的代码时使用,这种情况下的代码相对独立且体量较小。进入调试过程的方法:将断点打在main函数第一行,使用工具栏中的:逐语句f11,逐过程f10,跳出shift+f11,一步步控制代码运行的位置,直到被测代码段结束。这样调试的过程可以实时的检测到可能出现的问题,类似于:数据不理想,bug,崩溃,内存泄露,内存多次释放,缓存区溢出等问题可以在调试的过程中立刻捕获并修改。使用场景:想要运行程序查看代码的原创 2021-11-11 22:17:08 · 4841 阅读 · 0 评论 -
c++代码调试工具,监视/快速监视窗口:
代码调试,监视/快速监视:程序处于调试状态时,可以使用监视(watch)窗口和快速监视(quick watch)命令执行变量值得查看、改变等操作。快速监视:方法:在调试的状态下,将鼠标放在变量上,右键弹出菜单,点击“快速监视”,可以打开一个快速监视窗口,该窗口会显示该变量的当前值,无论是简单变量还是结构体,相应的信息都会非常清晰的显示出来。特点:1、在快速监视窗口中可以修改变量的值,只需要双击想要修改的变量的值进入修改状态,即可进行修改,然后按enter或者鼠标点击其它地方保存修改,能改cons原创 2021-11-11 22:23:14 · 9578 阅读 · 2 评论 -
c++代码调试,vs编译器提供的调试的几种方法,逐语句,逐过程,多次调试
vs编译器提供的调试的几种方法启动调试,程序运行前调试,程序自测:快捷键f5在代码开发的过程中进行调试,一般用于自己测试自己开发的代码时使用,这种情况下的代码相对独立且体量较小。进入调试过程的方法:将断点打在main函数第一行,使用工具栏中的:逐语句f11,逐过程f10,跳出shift+f11,一步步控制代码运行的位置,直到被测代码段结束。这样调试的过程可以实时的检测到可能出现的问题,类似于:数据不理想,bug,崩溃,内存泄露,内存多次释放,缓存区溢出等问题可以在调试的过程中立刻捕获并修改。原创 2021-11-11 22:35:44 · 5613 阅读 · 1 评论 -
c++代码调试,vs编译器内存窗口,查看指针变量指向的值
vs编译器内存窗口,查看指针变量指向的值监视窗口和内存窗口配合使用:通过监视窗口可以非常方便的修改变量的值,但对于指针,尤其是字符串指针的修改则不方便,因为监视窗口不会提供对指针变量在内存中的布局、存储方式、空间分布的信息。这些问题这可以在“内存”窗口中获得解决。故内存窗口是用来查看指针变量的值的,而不适合查看普通变量的值。监视窗口是用来查看普通变量的值的,而不合适查看指针变量的值。内存(memory)查看:alt+f6通过调试-》窗口-》内存,打开内存窗口,除此之外还要在工具-》选项-》调试-原创 2021-11-13 14:23:35 · 4488 阅读 · 1 评论 -
c++代码调试,vs调试工具,局部变量窗口,自动窗口
c++代码调试,vs编译器下局部变量窗口和自动窗口:局部变量窗口:通过调试-》窗口-》局部变量,打开局部变量窗口,或alt+4。作用域时函数,包括函数的参数,以及函数级别的所有变量。全局变量,以及函数中但作用域不是全函数的变量,例如for循环中的临时计数器i,都不会再局部变量窗口中显示。运行到main中,自动变量窗口展示main中的局部变量,但没有展示main中函数func内部的局部变量。运行到func中,局部变量窗口展示func中的局部变量,但不会展示for循环内部的局部变量。在某函数的局原创 2021-11-13 14:42:39 · 8848 阅读 · 0 评论 -
vs调试,堆栈中没有当前对应模块的文件模块(文件名)和函数
调试问题排查:调试动态库,附加到进程,堆栈中没有当前对应模块的文件模块(文件名)和函数。错误现场的情况:1、调试员已经拿到了源码,打上了断点,放置的pdb符号文件,附加到进程。2、但是在下方调用堆栈的窗口中并没有显示当前的文件模块。3、没有显示文件模块自然也就无法显示“已加载符号”。也就无法正常调试了。正常情况下:附加时会显示当前模块,一般就是文件名,以及显示该模块“已加载符号”。原因:1、是附加到进程时的进程号选择错误,导致该进程中并没有调用到当前调试模块对应的动态库和函数。2、进程的运行原创 2021-11-27 16:03:58 · 1044 阅读 · 0 评论 -
vs调试,条件断点:有个前提为循环10万次的断点,特定值的断点,特定线程的断点
代码调试,条件断点:有个前提为循环10万次的断点普通断点可以解决大部分问题,但有一些条件比较独特的情况,比如需要在循环执行到第几万次时断点将其中断时,手动点击继续几万次明显不现实,解决这个问题的办法是:鼠标右键单击该断点,并在弹出的菜单中选条件,给该断点设置阻塞进程的条件然后在弹出的复选框中勾上条件,在第一个下拉列表中选择命中次数,在第二个下拉列表中选择=或>=,在第三个输入框中填入次数,就可以完成条件设置了,然后再调试,程序就可以在几万次以后才会阻塞线程进行调试,而不用手动点击继续几原创 2021-11-27 16:01:34 · 688 阅读 · 1 评论 -
vs调试,调用堆栈窗口,查看运行的函数,函数的相互调用关系顺序
调用堆栈窗口:查看函数调用的顺序列表。通过调试-》窗口-》调用堆栈,打开调用堆栈窗口。调用堆栈窗口的重要功能是:可以找到当前函数的调用函数,以及依次往前的每一级调用函数。调用堆栈窗口会按照函数的调用顺序来显示,窗口中顶部为栈顶,底部为栈底,栈底的函数最先被调用,每个函数调用称为帧,即栈帧,调用堆栈由一帧帧函数组成,其中的信息无法手动修改,如名称,路径,符号状态等,但可以通过设置控制器是否显示在窗口中。调用堆栈窗口中排列着一组函数信息,内容主体是个函数栈,最上面的函数,就是第一级函数,是最后被调用的原创 2021-11-27 15:52:38 · 17906 阅读 · 2 评论