c语⾔程序断点怎么打,C#中如何使⽤断点操作调试程序
Visual Studio调试器调试
自助建站系统排名
当代码不能正常运⾏时,可以通过调试定位错误。常⽤的程序调试操作包括设置断点、开始、中断和停⽌程序的执⾏、单步执⾏程序以及使程序运⾏到指定的位置。下⾯将对这⼏种常⽤的程序调试操作进⾏详细地介绍。
1.断点操作
断点通知调试器,使应⽤程序在某点上(暂停执⾏)或某情况发⽣时中断。发⽣中断时,称程序和调试器处于中断模式。进⼊中断模式并不会终⽌或结束程序的执⾏,所有元素(如函数、变量和对象)都保留在内存中。执⾏可以在任何时候继续。
插⼊断点有3种⽅式:在要设置断点的代码⾏旁边的灰⾊空⽩中单击;右键单击要设置断点的代码⾏,在弹出的快捷菜单中选择“断
点”→“插⼊断点”命令,如图11.4所⽰;单击要设置断点的代码⾏,选择菜单中的“调试”→“切换断点(G)”命令,如图11.5所⽰。
图11.4  右键快捷菜单插⼊断点
图11.5  菜单栏插⼊断点
插⼊断点后,就会在设置断点的⾏旁边的灰⾊空⽩处出现⼀个红⾊圆点,并且该⾏代码也呈⾼亮显⽰,如图11.6所⽰。
图11.6  插⼊断点后效果图
删除断点主要有3种⽅式,分别如下:
(1)可以单击设置了断点的代码⾏左侧的红⾊圆点。
(2)在设置了断点的代码⾏左侧的红⾊圆点上单击⿏标右键,在弹出的快捷菜单中选择“删除断点”命令,如图11.7所⽰。
图11.7  右键快捷菜单删除断点
(3)在设置了断点的代码⾏上单击⿏标右键,在弹出的快捷菜单中选择“断点”/“删除断点”命令
2.开始执⾏
开始执⾏是最基本的调试功能之⼀,从“调试”菜单(如图11.8所⽰)中选择“开始调试”菜单,或在源代码窗⼝中右键单击可执⾏代码中的某⾏,从弹出的快捷菜单中选择“运⾏到光标处”菜单,如图11.9所⽰。
图11.8  选择“启动调试”菜单
正则表达式提取中文
图11.9  选择“运⾏到光标处”菜单
进程管理原语除了使⽤上述的⽅法开始执⾏外,还可以直接单击⼯具栏中的按钮,启动调试,如图11.10所⽰。
图11.10  ⼯具栏中的启动调试按钮
如果选择“启动调试”菜单,则应⽤程序启动并⼀直运⾏到断点,此时断点处的代码以黄⾊底⾊显⽰,如图11.11所⽰。可以在任何时刻中断执⾏,以查看值(将⿏标移动到相应的变量或者对象上,即可查看其具体值,如图11.12所⽰)、修改变量或观察程序状态。
图11.11  运⾏到断点
图11.12  查看变量的值
如果选择“运⾏到光标处”命令,则应⽤程序启动并⼀直运⾏到断点或光标位置,具体要看是断点在前还是光标在前,可以在源代码窗⼝中设置光标位置。如果光标在断点的前⾯,则代码⾸先运⾏到光标处,如图11.13所⽰。
图11.13  运⾏到光标处
3.中断执⾏
当执⾏到达⼀个断点或发⽣异常时,调试器将中断程序的执⾏。选择“调试”→“全部中断”菜单后,调试器将停⽌所有在调试器下运⾏的程序的执⾏。程序并没有退出,可以随时恢复执⾏,此时应⽤程序处于中断模式。“调试”菜单中“全部中断”菜单如图11.14所⽰。
图11.14  “调试”→“全部中断”菜单
除了通过选择“调试”→“全部中断”命令中断执⾏外,也可以单击⼯具栏中的按钮中断执⾏,如图11.15所⽰。
图11.15  ⼯具栏中的中断执⾏按钮
4.停⽌执⾏
停⽌执⾏意味着终⽌正在调试的进程并结束调试会话,可以通过选择菜单中的“调试”→“停⽌调试”命令来结束运⾏和调试。也可以选择⼯具栏中的按钮停⽌执⾏。
5.单步执⾏和逐过程执⾏
通过单步执⾏,调试器每次只执⾏⼀⾏代码,单步执⾏主要是通过逐语句、逐过程和跳出这3种命令实现的。“逐语句”和“逐过程”的主要区别是当某⼀⾏包含函数调⽤时,“逐语句”仅执⾏调⽤本⾝,然后在函数内的第⼀个代码⾏处停⽌。⽽“逐过程”执⾏整个函数,之后在函数外的第⼀⾏代码处停⽌。如果位于函数调⽤的内部并想返回到调⽤函数时,应使⽤“跳出”,“跳出”将⼀直执⾏代码,直到函数返回,然后在调⽤函数中的返回点处中断。
当启动调试后,可以单击⼯具栏中的按钮执⾏“逐语句”操作,单击按钮执⾏“逐过程”操作,单击按钮执⾏“跳出”操作,如图11.16所⽰。
图11.16  单步执⾏的3种命令
说明:除了在⼯具栏中单击这3个按钮外,还可以通过快捷键执⾏这3种操作,启动调试后,按下键执⾏“逐语句”操作、键执⾏“逐过程”操作、键执⾏“跳出”操作。
本⽂来⾃明⽇科技出版的《零基础学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断点操作
Android中的多线程断点下载
⾸先来看⼀下多线程下载的原理.多线程下载就是将同⼀个⽹络上的原始⽂件根据线程个数分成均等份,然后每个单独的线程下载对应的⼀部分,然后再将下载好的⽂件按照原始⽂件的顺序"拼接"起来就 ...
JavaScript jQuery 中定义数组与操作及jquery数组操作
⾸先给⼤家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所⽰: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚⾄是对象Javascript不⽀持多 ...
python能做什么样的游戏
IE7中使⽤Jquery动态操作name问题
编程猫发现
问题:IE7中⽆法使⽤Jquery动态操作页⾯元素的name属性. 在项⽬中有出现问题,某些客户的机器偶尔会有,后台取不到前台的数据值. 然开发和测试环境总是不能重现问题.坑爹之处就在于此,不能重现就 ...
随机推荐
MySQL 存储过程和函数
概述 ⼀提到存储过程可能就会引出另⼀个话题就是存储过程的优缺点,这⾥也不做讨论,⼀般别⼈问我我就这样回答你觉得它好你就⽤它.因为mysql中存储过程和函数的语法⾮常接近所以就放在⼀起,主要区别就是函数 ...
simpleCart的简单使⽤及配置
POJ2488-A Knight's Journey(DFS+回溯)
如何快速读懂⼤型C++程序代码
要搞清楚别⼈的代码,⾸先,你要了解代码涉及的领域知识,这是最重要的,不懂领域知识,只看代码本⾝,不可能搞的明⽩.其次,你得各种⽂档:需求⽂档(要做什么),设计⽂档(怎么做的),先搞清楚你即将要阅读是 ...
数据库学习之ADO.NET五⼤对象
1 [ADO.NET]      ado 是⼀种数据访问技术,使得应⽤程序能够连接到数据存储,并以各种⽅式操作存储在⾥⾯的数据.
2 [ADO.NET五⼤常⽤对象]    Connec ...
ADO.Net笔记整理(⼀)
⼏次装机,Notes已烟消云散,近⽇因为Node.js死活搞不定,⽆奈装机,备份好的东东,没想到磁盘扇区出现异常,可能是PE启动盘的病毒,只好将磁盘全部重新分区,恢复数据也懒得恢复了,⽇积⽉累关乎将来 ...
jmeter保持登录
1.添加配置元祖---http cookie 管理器(注意上⾯的http cookie管理器和其他的配置是对其的)
2.这⾥是当你想要配置多⽤户并发是要配置不同的账号,配置后记得上⾯的第⼀张图的清除c ...
Java代码审计连载之—添油加醋jquery下载的文件怎么使用
在代码审计中,按业务流程审计当然是必须的,⼈⼯的流程审计的优点是能够更加全⾯的发现漏洞,但是缺点是查漏洞效率低下.如果要定向的查漏洞,逆向跟踪变量技术就显得更加突出,如查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---> ...

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。