首页 > 编程知识 正文

c语言设置断点调试,c语言停留代码

时间:2023-05-03 18:44:15 阅读:111610 作者:4112

Visual Studio调试器调试

如果代码无法正常运行,则可以通过调试来识别错误。 常见的程序调试操作包括设置断点、开始、暂停和停止程序执行、逐步执行程序以及将程序运行到指定位置。 本节详细介绍了这些常见的程序调试操作。

1 .断点操作

断点会通知调试器,以便在APP应用程序的某个时间点(暂停执行)或出现某种情况时中断。 如果发生中断,则程序和调试器处于中断模式。 进入中断模式后,程序的执行不会结束或结束,函数、变量、对象等所有要素都会保留在内存中。 执行可以随时继续。

要插入断点,请单击要设置断点的代码行旁边的灰色空白,或者右键单击要设置断点的代码行,然后从快捷菜单中选择“断点”“断点”,如图11.4所示单击要设置断点的代码行,然后从菜单中选择“调试”“切换断点(g )”命令,如图11.5所示。

图11.4插入右键单击快捷菜单断点

图11.5插入菜单栏断点

插入断点时,在设置断点的行旁边的灰色空白处会显示一个红色圆点,该行代码也会高亮显示,如图11.6所示。

图11.6插入断点后的效果图

删除断点主要有三种方法:

)1)您可以单击设置断点的代码行左侧的红点。

)2)右键单击设置断点的代码行左侧的红点,然后从出现的快捷菜单中选择“删除断点”命令,如图11.7所示。

图11.7删除右键单击的快捷菜单断点

)3)右键单击设置断点的代码行,然后从显示的快捷菜单中选择“断点”/“删除断点”命令

2 .开始执行

开始执行是最基本的调试功能之一,从“调试”菜单(如图11.8所示)中选择“开始调试”菜单,或者在源代码窗口中右键单击可执行代码行,然后单击快捷菜单,如图11.9所示

图11.8选择“开始调试”菜单

图11.9选择“在光标处运行”菜单

除了按上述方法开始运行外,还可以直接单击工具栏上的按钮开始调试,如图11.10所示。

图11.10工具栏调试开始按钮

如果选择“开始调试”菜单,则APP应用程序将启动并运行到断点,断点的代码以黄色底色显示,如图11.11所示。 可以随时中断执行,显示值,变更变量,观察程序的状态。 可以通过将鼠标移动到适当的变量或对象上来查看其特定值,如图11.12所示。

执行到图11.11断点

图11.12查看变量的值

如果选择“在光标位置运行”命令,则APP应用程序将启动并运行到断点或光标位置。 在“源”窗口中设置光标位置取决于断点是在之前还是之前。 如果光标位于断点之前,则首先将代码执行到光标处,如图11.13所示。

图11.13运行到光标处

3 .执行中断

当执行达到断点或出现异常时,调试器将中断程序的执行。 选择“调试”“全部暂停”菜单可停止调试器下运行的所有程序。 程序尚未退出,可以随时重新开始运行。 此时,APP应用程序处于中断模式。 “调试”菜单的“全部中断”菜单如图11.14所示。

图11.14“调试”“全部暂停”菜单

您也可以通过选择“调试”“全部暂停”命令来暂停执行,如图11.15所示,或者单击工具栏上的按钮来暂停执行。

图11.15工具栏中断执行按钮

4 .停止执行

停止运行将终止正在调试的进程,并终止调试会话。 可以通过从菜单中选择“调试”“停止调试”命令来终止运行和调试。 也可以通过选择工具栏上的按钮来停止执行。

5 .单步执行和分流程执行

在单步执行中,调试器一次只运行一行代码。 单步执行主要通过语句、进程、步进三种命令实现。 “按语句”和“按过程”之间的主要区别在于,如果某行包含函数调用,则“按语句”只执行调用本身,并在函数中的第一行代码中停止。 另一方面,“逐过程”执行整个函数,然后在函数外的第一行代码中停止。 如果位于函数调用内部,并且希望返回调用函数,则必须使用“转义”。 “转义”将执行代码直到函数返回,并在调用函数中的返回点处暂停。

开始调试后,可以单击工具栏上的按钮执行“逐句”操作,单击按钮执行“逐进程”操作,然后单击按钮执行“跳转”操作,如图11.16所示。

图11.16单步执行的三种指令

说明:除了在工具栏上单击这三个按钮外,还可以通过使用快捷键执行这三个操作来启动调整

试后,按下键执行“逐语句”操作、键执行“逐过程”操作、键执行“跳出”操作。

本文来自明日科技出版的《零基础学C#》,转载请注明出处!!!

动态链接库中分配内存引起的问题-- windows已在XX.exe中触发一个断点

动态链接库中分配内存引起的 本文主要是探讨关于在动态链接库分配的内存在主程序中释放所产生的问题,该问题是我在刚做的PJP工程中所遇到的,由于刚碰到之时感动比较诡异(这也是学识不够所致),所以将它写下来 ...

Swing中耗时任务需要另起新线程,这个新线程中更新GUI的操作仍需由EDT来做(转)

最近调试程序时发现,点击某个界面时会出现卡死的情况,出现的频率还是比较频繁的. 再次出现卡死的情况后,利用jvisualvm查看线程的运行情况,dump操作之后发现线程间出现了死锁:Found one ...

Ubuntu16.04 中 Vscode 如何断点调试C语言程序

个人博客链接:Ubuntu16.04 中 Vscode 如何断点调试C语言程序 问题:环境是 Ubuntu16.04,如何使用 Vscode 断点调试C语言程序. 写代码没有调试环境是不能忍受的,所以 ...

JavaScript指定断点操作

什么是断点操作(Breakpoint action) 做前端开发的小伙伴,或许对这个断点操作不是很熟悉.不过你要是问其他语言(比如C,C++ ,C #等)的开发者,他们应该都挺熟悉断点操作,这种断点操 ...

WinDbg常用命令系列---断点操作b*

ba (Break on Access) ba命令设置处理器断点(通常称为数据断点,不太准确).此断点在访问指定内存时触发. 用户模式下 [~Thread] ba[ID] Access Size [O ...

OD断点操作

原文链接:https://www.cnblogs.com/qiyeboy/p/6815988.html 在做Windows平台软件逆向时,Ollydbg是极其常用的逆向工具,动态调试功能非常强大.在调 ...

Android中的多线程断点下载

首先来看一下多线程下载的原理.多线程下载就是将同一个网络上的原始文件根据线程个数分成均等份,然后每个单独的线程下载对应的一部分,然后再将下载好的文件按照原始文件的顺序"拼接"起来就 ...

JavaScript jQuery 中定义数组与操作及jquery数组操作

首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

IE7中使用Jquery动态操作name问题

问题:IE7中无法使用Jquery动态操作页面元素的name属性. 在项目中有出现问题,某些客户的机器偶尔会有,后台取不到前台的数据值. 然开发和测试环境总是不能重现问题.坑爹之处就在于此,不能重现就 ...

随机推荐

MySQL 存储过程和函数

概述 一提到存储过程可能就会引出另一个话题就是存储过程的优缺点,这里也不做讨论,一般别人问我我就这样回答你觉得它好你就用它.因为mysql中存储过程和函数的语法非常接近所以就放在一起,主要区别就是函数 ...

simpleCart的简单使用及配置

simpleCart的功能就不用解释,购物车,很6.官网上的说明太模糊了,还是GIHUb上的好一点:https://github.com/wojodesign/simplecart-js/ 文章解决问 ...

POJ2488-A wwdxmy's Journey(DFS+回溯)

题目链接:http://poj.org/problem?id=2488 A wwdxmy's Journey Time Limit: 1000MS   Memory Limit: 65536K Tot ...

如何快速读懂大型C++程序代码

要搞清楚别人的代码,首先,你要了解代码涉及的领域知识,这是最重要的,不懂领域知识,只看代码本身,不可能搞的明白.其次,你得找各种文档:需求文档(要做什么),设计文档(怎么做的),先搞清楚你即将要阅读是 ...

数据库学习之ADO.NET五大对象

1 [ADO.NET]      ado.net 是一种数据访问技术,使得应用程序能够连接到数据存储,并以各种方式操作存储不安的巨人的数据.    2 [ADO.NET五大常用对象]     Connec ...

ADO.Net笔记整理(一)

几次装机,Notes已烟消云散,近日因为Node.js死活搞不定,无奈装机,备份好的东东,没想到磁盘扇区出现异常,可能是PE启动盘的病毒,只好将磁盘全部重新分区,恢复数据也懒得恢复了,日积月累关乎将来 ...

jmeter保持登录

1.添加配置元祖---http cookie 管理器(注意上面的http cookie管理器和其他的配置是对其的) 2.这里是jzdzc想要配置多用户并发是要配置不同的账号,配置后记得上面的第一张图的清除c ...

Java代码审计连载之—添油加醋

在代码审计中,按业务流程审计当然是必须的,人工的流程审计的优点是能够更加全面的发现漏洞,但是缺点是查找漏洞效率低下.如果要定向的查找漏洞,逆向跟踪变量技术就显得更加突出,如查找XSS.SQL注入.命令 ...

mysql--------char 和 varchar 的区别

char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是: char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在 ...

6.26-EL表达式,JSTL标签

一.EL表达式 功能: 替代jsp中数据访问时的复杂java代码 语法: ${表达式} ${(5+9)*2} 访问顺序: page--->request--->session---> ...

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。