VS中C语言调试逐语句和逐过程的区别

2023-10-27

以vs程序为例,其逐语句调试和逐过程调试的区别仅在于它们处理函数调用的方式不同,这两个命令都指示调试器执行下一行的代码。如果某一行包含函数调用,“逐语句”仅执行调用本身,然后在函数内的第一个代码行出停止,而“逐过程”执行整个函数,然后在函数外的第一行处停止。

这两个命令都指示调试器执行下一行的代码。如果某一行包含函数调用,“逐语句”仅执行调用本身,然后在函数内的第一个代码行处停止。而“逐过程”执行整个函数,然后在函数外的第一行处停止。如果要查看函数调用的内容,请使用“逐语句”。若要避免单步执行函数,请使用“逐过程”。

如果我们在printf()设置了断点,按下“逐过程”按钮或F10键,程序就会执行 printf(),并暂停在下一行代码处。printf()是一个函数,它本身由多条语句构成,如果你希望进入printf()函数内部,查看整个函数的执行过程,可以点击“逐语句”按钮,或者按F11键,这样程序就会进入printf()所在的源文件。

当需要跳出函数时,可以点击“跳出”按钮,或者按Shif+F11键,就会返回刚才的代码。逐过程(F10)和逐语句(F11)都可以用来进行单步调试,但是它们有所区别:
逐过程(F10)在遇到函数时,会把函数从整体上看做一条语句,不会进入函数内部;
逐语句(F11)在遇到函数时,认为函数由多条语句构成,会进入函数内部。

逐语句(F10)不仅可以进入库函数的内部,还可以进入自定义函数内部。在实际的调试过程中,两者结合可以发挥更大的威力。断点+查看/修改变量+逐过程调试+逐语句调试,这足以解决绝大多数逻辑问题,到此,初学者就已经学到了调试的基本技能。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS中C语言调试逐语句和逐过程的区别 的相关文章

  • 概率统计21——指数分布和无记忆性

    指数分布 Exponential distribution 是一种连续型概率分布 可以用来表示独立随机事件发生的时间间隔的概率 比如婴儿出生的时间间隔 旅客进入机场的时间间隔 打进客服中心电话的时间间隔 系统出现bug的时间间隔等等 指数分

随机推荐

  • 给rhel9、centos-stream9 设置软件源

    我使用的是清华镜像源 https mirrors tuna tsinghua edu cn centos stream SIGs 9 stream 一 软件源添加 vim etc yum repos d CentOS Stream9 rep
  • typedef struct node的用法及与struct node的区别,为何要用typedef?

    typedef的作用是为已有的数据类型定义一个新名字 其主要目的是为了我们在使用时能用这个更加清晰简单的新名字 还有一个目的就是为了简化变量的声明 下面的几段代码具有相同的功能 都是用于链表结构体节点的定义和声明 第一种方式 struct
  • vue页面刷新或者后退参数丢失的问题

    在toB的项目中 会经常遇到列表数据筛选查询的情景 当要打开某一项的详情页或者暂时离开列表页 再返回 后退时 选择的筛选条件会全部丢失 辛辛苦苦选择好的条件全没了 还得重新选择 如果有分页的更头大 还得重新一页页翻到之前看到的那一页 用户体
  • 如何理解协方差矩阵(散布矩阵)

    这学期开了模式识别的学习课程 经常提到概率论与数理统计的一个概念 协方差矩阵 在模式识别中又叫散布矩阵 理解这个矩阵严格意义上来说其实不需要太多先导知识 我们只需要了解一些线性代数基本的概念 但是你如果不了解协方差矩阵 听模式识别的课程就会
  • 有深度的文章

    大家好 时隔半年 我将会继续更新推文 主发微信公众号 希望与大家一起交流学习 望大家多支持 你将在这里以最短的时间 获得最好的技术知识 图片是公众号二维码 谢谢大家
  • 第五章字符串总结

    5 1 String类 5 1 1 声明字符串 字符串是常量 它们可以显示任何文字信息 字符串的值在创建之后不能更改 在 Java 语言中 单引号中的内容表示字符 例如 s 而双引号中的内容则表示字符串 例如 我是字符串 123456789
  • vlc-android配置实录

    听说vlc底层也用的ffmpeg 免费开源的 业界做的不错的 就来看看 从网上找了很多例子 也从github上找了好多demo 好多都不全 或者下载下来编译失败 官网上下载的vlc android就编译失败 下面列两个可以用的 一 有vlc
  • JavaScript实现数组对应位置插入另一个数组

    系列文章目录 文章目录 系列文章目录 前言 一 使用循环遍历 二 使用concat和slice方法 三 使用splice方法 四 使用for循环 总结 前言 在JavaScript中 有时我们需要将一个数组的元素按照对应位置插入另一个数组中
  • Spring源码解析:BeanFactory深入理解

    现在一般都用ApplicantContext代替BeanFactory 说到Spring框架 人们往往大谈特谈一些似乎高逼格的东西 比如依赖注入 控制反转 面向切面等等 但是却忘记了最基本的一点 Spring的本质是一个bean工厂 bea
  • 使用思维导图快速了解 Eventbus

    详细源码解读可参考 Awsome Android
  • CentOS 上安装ClamAV

    安装epel yum y install epel release 安装ClamAV yum install y clamav clamav update 安装 yum load transaction tmp yum save tx 20
  • 医学图像分割:自动心脏诊断挑战赛项目数据集(ACDC)

    Local contrastive loss with pseudo label based self training for semi supervised medical image segmentation Krishna Chai
  • WSL2安装Docker

    推荐阅读知乎版 排版更好一点 WSL2安装Docker WSL2安装Docker比较简单 这里记录下 主要参考官方文章如下 Docker wsl2 1 确保已安装WSL2 首先确保你已经安装了WSL2 wsl l v 如果没有安装 请参考
  • 证书在手,认证无忧---证书浅析

    在IPSec VPN篇章中 我们介绍了IPSec隧道两端设备使用证书进行身份认证的内容 在刚刚推出的SSL VPN开篇中 也介绍了证书认证的相关内容 作为网络世界的 身份证 证书在身份认证的场景中已经得到了普遍应用 大家可能已经习惯了用户名
  • Ubuntu一键部署Open VN

    vpn咋就不能成为标题了 现在企业必备的技能不能用了 1 下载安装 1 1 登录root账户 su root 1 2 下载一键部署脚本 git clone https github com guoew openvpn install git
  • protobuf 下载 使用

    protobuf是谷歌开源的一种数据格式 适合高性能 对响应速度有要求的数据传输场景 因为profobuf是二进制数据格式 需要编码和解码 数据本身不具有可读性 因此只能反序列化之后得到真正可读的数据 优势 1 序列化后体积相比Json和X
  • rgba转16js代码

  • 【单片机毕业设计】【mcuclub-dz-068】基于单片机的避障小车系统设计

    最近设计了一个项目基于单片机的避障小车系统设计 与大家分享一下 一 基本介绍 项目名 基于单片机的避障小车的设计 项目编号 mcuclub dz 068 单片机 STC89C52 功能简介 1 通过超声波检测前方障碍物 如果前方出现障碍物
  • How to Troubleshoot Grid Infrastructure Startup Issues [ID 1050908.1]

    How to Troubleshoot Grid Infrastructure Startup Issues ID 1050908 1 Modified 21 MAY 2010 Type HOWTO Status PUBLISHED In
  • VS中C语言调试逐语句和逐过程的区别

    以vs程序为例 其逐语句调试和逐过程调试的区别仅在于它们处理函数调用的方式不同 这两个命令都指示调试器执行下一行的代码 如果某一行包含函数调用 逐语句 仅执行调用本身 然后在函数内的第一个代码行出停止 而 逐过程 执行整个函数 然后在函数外