单步调试是指程序开发中,为了找到程序的bug,通常采用的一种调试手段,一步一步跟踪程序执行的流程,根据变量的值,找到错误的原因。
解决这个问题的方法如下:
1、首先需要设置断点的那一行代码的最前面点击下,就会出现一个红色的圆球,代表设置断点成功,下图一共设置了4个断点。
2、设置断点完成之后,按下F5,开始断点调试,断点走到的位置,会在红色圆球上添加一个**箭头。
3、继续按下F5, 程序会往下执行,走到下一个断点的时候停止。
4、继续按下F5,当设置的断点不满足条件的时候,不会走进去,而是继续执行,跳到下一个断点。
5、另外,当走到某个断点处,可以实时更改当前变量的值。
6、当不需要单步调试的时候,点击下图标示的图标,可以删除所有的断点。
7、删掉之后,红色圆点消失,这样问题就解决了。
界面概览。
常用菜单栏:file:文件的打开,关闭,保存等 *** 作;view:平移,放大,缩小,网格设置;edit:撤销,重做复制粘贴等。
常用快捷工具栏,基本上是上面常用菜单栏的快捷功能。
常用鼠标 *** 作:左键:选择;左键(双击元件):设置元件属性;右键:调出快捷菜单;右键(双击元件):删除元件;滚轮(按下):进入平移图纸模式;滚轮(滚动):放大缩小图纸。
常用功能模块:元件选择;端口模块;测量仪器。
添加元器件:在元器件选择模式(上一步的第一个圈)下,点"P",调出元器件库。其按目录排列,但是通常来说用左上角的搜索按钮比较方便,搜索关键词就是该元件名称的英文单词或英文单词的一部分。
常用元器件搜索关键词:电阻:res;发光二极管:led-yellow/blue/red;滑动变阻器:pot-hg。
搭建电路,选中元器件然后放在电路图合适位置,连线。本示例的vcc和地在端口原件,分别是power和ground。
运行仿真,从左到右依次是开始运行,单步运行,暂停和停止。
1、设置断点:在行号处点击有小红点出现,即可作为断点进行调试(F5是继续调试)。如图:
2、单步调试(F11为单步调试)
(1)、只需在主程序调用子函数该行处设置断点,例如在图中Line127行设置断点。
(2)、运行主程序到Line127行后,点击菜单"步入"按钮,即可进入该子函数中,然后可以单步调试了。
3、提高程序运行速度方案
(1)、提前分配内存 :对于内存消耗非常大的情况, 测试不提前分配val的内存,测试提前分配val的内存。
(2)、矩阵运算: 写for循环之前先看看能否改成矩阵运算, matlab二维矩阵运算速度非常快,但是三维矩阵运算并不快。
3、并行运算parfor
一: windows的命令行模式 (win+R)在里面写CMD就可以进入windows的命令行模式了 二 : 批处理文件 批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 bat 或 cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmdexe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。下面就开始我们批处理学习之旅吧。 (本文因篇幅较长,所以分成两部份。前半部份讲命令,后半部分讲实例分析。) 一、简单批处理内部命令简介 1Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 语法 echo [{on off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中这将在以后的例子中体现出来。 2@ 命令 表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 Sample:@echo off @echo Now initializing the program,please wait a minite @format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。) 3Goto 命令 指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。 语法:goto label (label是参数,指定所要转向的批处理程序中的行。) Sample: if {%1}=={} goto noparms if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。) @Rem check parameters if null show usage :noparms echo Usage: monitorbat ServerIP PortNumber goto end 标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。 4Rem 命令 注释命令,在C语言中相当与/--------/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。 Rem Message Sample:@Rem Here is the description 5Pause 命令 运行 Pause 命令时,将显示下面的消息: Press any key to continue Sample: @echo off :begin copy a: d:\back echo Please put a new disk into driver A pause goto begin 在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理 6Call 命令 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。 语法 call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 参数 [Drive:}[Path] FileName 指定要调用的批处理程序的位置和名称。filename 参数必须具有 bat 或 c
1、写一个有bug的简单程序。
2、运行程序,产生错误,然后进行debug调试。可以按照图示进入调试,也可以直接按快捷键F10。
3、首先凭借直觉,设置断点。
4、观察变量值的变化,是否在要求的范围内,或者运行时程序是否产生内存溢出;最终发现在a=1出产生错误,改正后,再运行。
5、修改程序后重新编译,若无错误,即完成,若有错误,继续进行第三步和第四步,直至错误消除或者产生正确结果为止。
以上就是关于c语言中什么叫做单步调试,步骤是什么全部的内容,包括:c语言中什么叫做单步调试,步骤是什么、proteus 怎样单步运行、matlab编程如何设置断点、如何单步调试、如何提高程序运行速度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)