阿里云自己做网站,山东网站建设电话,手机版的学习网站,开淘宝店铺怎么运营推广Visual Studiohttps://visualstudio.microsoft.com/zh-hans/vs/ 目录 1、什么是调试#xff1f;
2、debug和release
3、调试
3.1、环境
3.2、 快捷键
3.2.1、F10和F11
3.2.2、ctrlF5
3.2.3、F5与F9 3.2.3.1、条件断点
3.3、监视和内存观察
3.3.1、监视
3.3.2、内存 … Visual Studiohttps://visualstudio.microsoft.com/zh-hans/vs/ 目录 1、什么是调试
2、debug和release
3、调试
3.1、环境
3.2、 快捷键
3.2.1、F10和F11
3.2.2、ctrlF5
3.2.3、F5与F9 3.2.3.1、条件断点
3.3、监视和内存观察
3.3.1、监视
3.3.2、内存 1、什么是调试 当我们发现程序中存在的问题的时候那下⼀步就是找到问题并修复问题。 这个找问题的过程叫称为调试英⽂叫debug消灭bug的意思。 调试⼀个程序⾸先是承认出现了问题然后通过各种⼿段去定位问题的位置可能是逐过程的调 试也可能是隔离和屏蔽代码的⽅式找到问题所的位置然后确定错误产⽣的原因再修复代码 重新测试。 2、debug和release Debug 通常称为调试版本它包含调试信息并且不作任何优化便于程序员调试程序 程序员在写代码的时候需要经常性的调试代码就将这⾥设置为debug这样编译产⽣的是debug 版本的可执⾏程序其中包含调试信息是可以直接调试的。Release 称为发布版本它往往是进⾏了各种优化使得程序在代码⼤⼩和运⾏速度上都是最优的 以便⽤⼾很好地使⽤。当程序员写完代码测试再对程序进⾏测试直到程序员的质量符合交付给⽤ ⼾使⽤的标准这个时候就会设置为release编译产⽣的就是release版本的可执⾏程序这个版本是 ⽤⼾使⽤的⽆需包含调试信息等。 简单来说Debug版本是程序员使用的版本进行调试和修复而Release版本是当程序员写完代码并且代码符合质量标准后进行上交的版本也就是最后用户使用的版本同时Release版本是无法进行调试和修改的。 且二者的最大不同之处就在于存储在电脑磁盘中的内存空间并不一致Release存储的更小而Debug存储的更大。 3、调试
3.1、环境 调试的环境在调试代码之前必须先进行环境的改变也就是先将编译器的变为debug的版本环境而X86和X64环境并无大碍。 3.2、 快捷键 VS中常用的快捷键http://t.csdn.cn/Gjfmi 3.2.1、F10和F11
介绍
F10逐过程通常⽤来处理⼀个过程⼀个过程可以是⼀次函数调⽤或者是⼀条语句。F11逐语句就是每次都执⾏⼀条语句但是这个快捷键可以使我们的执⾏逻辑进⼊函数内部。
区别 如以上代码 若使用F10进行调试根据F10的调试原理在调试到调用函数test时F10会直接越过并得出结果随后立即跳往下一个语句for而若使用F11进行调试根据F11的调试原理在调试到调用函数test时F11会进入test中通过调用函数抵达void test并开始调试里面的每一个语句待调试完里面的所有语句后在跳回原来的test之后的语句。 结论在函数调⽤的地⽅想进⼊函数观察细节必须使⽤F11如果使⽤F10直接完成函数调⽤。
3.2.2、ctrlF5
ctrlF5 开始执⾏不调试如果你想让程序直接运⾏起来⽽不调试就可以直接使⽤。
3.2.3、F5与F9
介绍
F5启动调试经常⽤来直接跳到下⼀个断点处⼀般是 和F9配合使⽤。F9创建断点和取消断点 断点的作⽤是可以在程序的任意位置设置断点打上断点就可以使得程序执行到想要的位置暂定执 ⾏接下来我们就可以使⽤F10F11这些快捷键观察代码的执行细节。 注意 F5在没有配合F9的使用时就和CtrlF5毫无区别最新的VS2020版本甚至是一闪而过。 作用 F9的是用于在有可能出现问题的地方使用配合F5可以使调试变得更加的简便和轻松。 譬如 如以上代码 在得知错误点在for语句时 若在for循环开始的那一行中摁下F9设置断点而后在摁下F5那么在for之前的代码语句将会快速进行调试随后抵达F9的所在位置。而若没有使用该功能我们想要查询for语句中的错误只能使用F10或者F11进行逐行的代码调试效率极其低下。 3.2.3.1、条件断点 条件断点满⾜这个条件才触发断点 在进行条件断点之前我们先了解一下断点。 如以上代码有两个断点分别是第18行和第23行。 那么在18行的断点结束后摁下F5跳往的是第23行的断点还是 答案并不是第23行的断点而是下一处循环的断点。 for语句是一个循环语句在循环未结束之前是不会停下而设在for语句循环体内的断点也是如此当一次循环的断点结束后摁下F5飞往的是下一次循环的断点直到循环结束 这也是断点的一个特点断点是逻辑断点并非物理表面上的物理断点
条件断点 如以上代码有这样一个疑问如果我知道了某一次循环会出错但是我要知道那一次循环具体出错的原因那么我该怎么办应该是在循环语句中不断的使用F11进行内部循环的调试调试到那一次循环位置还是说 于是乎当我们遇到这类问题时我们就可以将断点设置为条件断点进行调试。 条件断点的原理是只有满足改条件时循环便会中断且之前进行的循环过程会被快速调试。 如何设置
摁F9设置断点——右击断点——选择“条件”——设置条件——回车
3.3、监视和内存观察
在调试的过程中我们如果要观察代码执⾏过程中上下⽂环境中的变量的值有哪些⽅法呢
3.3.1、监视
开始调试后在菜单栏中【调试】-【窗⼝】-【监视】打开任意⼀个监视窗⼝输⼊想要观察的对 象就行。
打开监视窗口 注意只有在进行调试后摁下F10才能点击窗口右侧选项栏内的监视否则会没有任何东西出现。 且在监视栏中输入的对象必须是合法对象也就是在代码中合理的表达式或者变量否则会没有任何东西出现。 3.3.2、内存 如果监视窗⼝看的不够仔细也是可以观察变量在内存中的存储情况还是在【调试】——【窗⼝】—— 【内存】
打开内存窗口 在内存窗⼝中观察数据 第一行表示内存地址第二行表示内存中的十六进制展示第三行表示内存数据的解析。 在打开内存窗⼝后要在地址栏输⼊arrnumc这类地址就能观察到该地址处的数据。