① 关于使用vs2013编写汇编语言时的单步调试问题
有时候汇编的写法生成的调试符号跟源文件对应会有一些出入,导致调试有些断点失效,这种情况下我个人调试的时候,使用F10或者F11启动程序,这样就可以精确停止在每一行代码上了。另外可以结合反汇编代码进行调试
② vs2019如何在一个函数中每个语句单步执行
编译程序时采用Debug方式,用F9启动程序,用F7进入单步调试方式。
③ C++编程里的单步调试咋弄
Restart(Ctrl+shift+F5):此debugger功能将从程序的开始(第一有效行)处全速执行,而不是从当前所跟踪的位置开始调 试,这时所有变量的当前值都将被丢弃,debugger会自动停在程序的main()开始处.这时如果选择Step Over(F10)就可以逐步执行main()函数了.Stop Debugging(Shift+F5):此debugger功能将终止(所有)调试,并返回到常规编辑状态. Break(此功能常常在遇到调用函数的语句时可见.):此功能将在调试过程中的debugger当前位置挂起程序的执行,然后就可以在调 试状态一修改程序的代码,接着可以用Apply Code Changes(Alt+F10)来应用修改的代码到正在调试的程序当中.如果,当前(需要,待)可以(从DOS等窗口)输入值,挂起后将不能再输入.Apply Code Changes(Alt+F10):此功能可以在程序正在调试程序过程中应用(挂起)修改后的源代码.如,选择Break功能并修改代 码后,只要选择Apply Code Changes(Alt+F10)就能将修改后的代码应用到正在调试的程序当中.Show Next Statement(Alt+Num*):此功能将显示程序代码的下一条语句,如果源代码中找不到,则在Disassembly窗口中显示语句. 当在Disassembly窗口中显示时,可以单击Disassembly 返回到源代码窗口. Step Into(F11):此功能可以单步进入到在调试过程中所跟踪的调用函数的语句的函数内部.如,当前语句是"d.Display()", 选择Step Into(F11)后,Debugger将进入Display()函数内部并停在Display()函数内部的第一条语句上.(此时,就可以Step Over(F10)对Display()函数进行单步调试了.)Step Over(F10):此功能可以单步对所在函数单步调试,如果调试的语句是一个调用函数的语句时, Debugger将全速执行所调用的函数,单步(一步)通过所调用的函数,Debugger停该调用语句的下一条语句上.Step Out(Shift+F11):此功能将使Debugger切换回全速执行到被调用函数结束,并停在该函数调用语句的下一条语句上. 当确定所调用的函数没有问题时可以用这个功能全速执行被调用函数.Run to Cursor(Ctrl+F10):此功能将全速执行到包含插入点光标所在的行,可以作为在插入点光标处设置常规断点的一种选择. 注意,当光标处不是一个有效的执行语句时此功能将不起作用. Go(F5):此功能将全速执行程序直到遇到一个断点或程序结束,或直到程序暂停等待用户输入.
④ visual studio 2015怎么用
附上出处链接:http://www.mamicode.com/info-detail-1089768.html
获得Visual Studio 2015
进入Visual Studio 官方网站,点击"下载Visual Studio社区"。
如果一切正常,你会得到一个大小大约为3MB的应用程序(我假设你知道如何下载,并且知道如何找到下载的文件):
双击它,稍等片刻,来到这个界面:
不用修改安装目录,选择"自定义",点击"下一步",来到这里:
只选择"编程语言"下的"Visual C++",点击下一步,来到这里:
核对一下,点击"安装",看到这个界面后:
就可以点击"最小化"玩别的了,安装过程大约要一个小时,期间需要保持网络畅通。
完成了!看到那个巨大的"启动"了吗?点!
在VS中建立一个C/C++程序项目
现在,我们就可以开启VS之旅了!
打开VS2015,它可能会让你登录:
这里可以如果你愿意,可以登录,我这里选择"以后再说":
这里的开发设置,我选择"Visual C++",颜色我选择了酷炫的"深色"。(根据喜好来就行,不必犯选择困难症,反正以后也能改)
万事俱备,"启动Visual Studio"!
稍等片刻,你就会看到这个界面:
点击菜单:"文件"-"新建"-"项目",会出现这个窗口:
选择左侧的"Visual C++"之后,选择右侧的"空项目",项目名称填写"MyFristCPromgram",点击"确定"。(当然项目名你不必像我一样写这么长,随便打几个字母也是可以的)
之后,在左侧的"解决方案资源管理器"中,右键"头文件","添加","新建项"。(如果没有左侧的"解决方案资源管理器",可以点击菜单:"窗口"-"重置窗口布局")
在弹出的窗口中,修改新项的名称为"main.h"(你喜欢的话也可以用"main.c"或"main.cpp"或者随便起名字)
现在就可以书写你的代码了:
让我们向这个世界问好,写下这些代码:
点击工具栏上的那个三角形的绿色按钮("本地Windows调试器")来运行,或者更快捷的方式是直接按F5。
勾选"不再显示此对话框",点击"是"。
一闪而过!
"导演,剧本看起来不对啊!"
当你点击运行按钮或按F5后,程序一闪而过,怎么回事,VS2015的BUG?
并不是,我们看看这段程序,这段程序只有一行printf,没有任何别的语句,计算机瞬间就能执行完,执行完不就结束了吗,这就是一闪而过的原因。
但是我要看输出的文字啊,怎么让它在printf后停住呢?
很简单只需要使用system("pause");命令即可,像这样:
你会发现system被画了红色的波浪线,将鼠标移上去发现VS告诉我们这是一个未定义的标识符,因为system所在的库我们没有包含,我们加上这行include:
按下F5,现在,你就已经学会如何使用Visual Studio来编写和运行简单的C/C++程序了:
补充
如果你不想为使用system("pause");包含一个库,也可以使用scanf函数来等待输入,从而暂停程序,或者你可以在最后一个花括号那行,设置一个断点,这种方法我们将会在之后详细讲解。
教练,scanf不能用?!
"VS的问题怎么这么多!连scanf都不能用还写C程序?"
等等,请你先冷静下来,打勾"不再显示此对话框"点击"否",让我们仔细看看输出的这条错误信息:
error C4996: ‘scanf‘: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
VS告诉我们,这个函数可能不安全,应该考虑使用scanf_s来代替(到底哪里不安全,有兴趣的宝宝可以看本节尾部的选读小节)。或者定义_CRT_SECURE_NO_WARNINGS宏来屏蔽这个警告。
所以第一种方式我们可以修改scanf为scanf_s,便可以通过编译
它看上去工作良好!
"不行!我偏要用scanf!我偏要用!偏要用!!"
对于这种强迫症患者,我们可以通过定义_CRT_SECURE_NO_WARNINGS宏来关闭VS的安全警告:
这两种方法任选其一即可,同时在关闭VS安全警告后,scanf_s仍然是可用的。
不安全的scanf(选读)
当使用scanf通过%s读入字符串的时候,很多初学者会忽略用户输入的字符串长度的问题,导致缓冲区溢出后程序不稳定。观察下面这个程序:
首先程序开辟了5个字符的空间来接受输入,但问题是,你并不知道用户会输入多少。
让我们运行起来这个程序,输入一个明显大于5个字符的文本,测试一下:
"哈哈!什么事情都没有,你根本在吓唬我!"
别高兴的太早,按任意键结束这个程序:
VS给我们提出了警告,告诉我们"str"这个变量的堆栈不正常,其实这就是之前我们提到的术语"缓冲区溢出",当我们将长数据放入短位置的时候,多出来的部分就会覆盖程序的其它数据,有时被覆盖的东西不重要,程序正常工作,有时重要,程序崩溃,这就叫不安全。
"但是我用VC++6.0的时候可没出这个错啊?"
我想是因为VC++6.0太老旧,没有检查这种问题的能力。
这种问题还有一个比较隐蔽的发生形式:如果我们正好输入5个字符呢?比如"Hello"。
事实上仍然会缓冲区溢出,因为字符串是以‘/0‘字符结尾,其本身也占一个位置,所以"Hello"实际上是6个字符!
使用VS自动调整代码缩进
经常我们从别处粘贴来的代码缩进不正确,或者很多不拘小节的人写代码可能从来不注意缩进,虽然缩进不是C/C++语法的一部分,但是十分影响程序的可读性。
就比如一个判断三角形形状的程序,有的小朋友就能写成这样:
别笑,这正是我见过的。这确实对编译器并没有什么障碍,但是如果你要修改这样的代码,你得比平常多花起码三倍精力。就比如我问你,倒数第二个else搭配的是哪个if?你能一眼看出来吗。
现在我们使用VS的自动格式化代码的功能,选择要被格式化的代码,这来我们选择全部(Ctrl+A):
按住Ctrl,按一下K,按一下F,神奇吗?
那么现在我再问你,倒数第二个else搭配的是哪个if?
?
使用VS的断点与单步跟踪功能
经常,为了找出程序的问题点,我们可以在VS中设下断点并且一步一步跟它着执行,观察各个变量的变化情况,来找到错误的地方。
回到本文之前的那个计算完全平方的程序,右键for循环的那一行,"断点"-"插入断点"。(或者先将光标移动到这一行,然后按F9,再或者直接点击行首空白处)
在本行的首部将出现一个红圈,点击这个红圈可以取消断点。
F5运行程序,为scanf_s输入"10"回车,窗口会自动跳转至VS,光标自动定位到断点行。
这时将鼠标移动到任意一个变量名上,就可以查看这个变量的值。我们移动到i这个变量上:
看到它拥有一个诡异的值。
"不对,啊,我不是给i赋值0了吗?就在这行!"
是的,但断点断下的时刻是这行执行之前,也就是现在的i还没被定义以及初始化,它的值自然是不确定的。
我们点击这个大头针,将固定显示i的值。
你可以将它拖动到舒适的位置,甚至你还可以手动修改它的值,添加注释,但这里我们不需要这样做。
我们按F10让程序向前走一步:
立即发现i的值变成了0,并且VS还用红色显示给我们,同时光标自动移动到了if语句,左边的黄色箭头表面当前程序运行到的位置。再按F10。
因为i满足开方后仍然是整数的条件,所以进入了if分支,准备输出这个i。
一路F10,你就可以观察清楚整个程序i是何时增加,何时输出。
当你不想再跟踪的时候,点击左边的红圈取消断点,按F5,让程序自己跑便是。
⑤ visual studio 2008如何进行断点调试
设置完断点后,可以选择【Debug】菜单的【StartDebugging】选项进入调试状态,也可以直接按F5键。程序会在断点位置中断,你可以动态监测甚至修改各个变量的值,单步跟踪程序的执行等。通常可以设置若干个断点,执行将在断点指示的语句之前被停止。
呵呵,其实VS2008中还有更高级的断点,比如跟踪点。(按下Alt+F9会显示断点窗口)跟踪点可以设置条件,在某个表达式为true或false时触发,这有点像C++中的ASSERT和_DEBUG宏。跟踪点也可以关联自定义动作,比如打印一条消息或运行某个宏等。
总之,断点为程序员调试程序提供了极大的方便。但我后面所说的跟踪点似乎不被更多的程序员所了解,我和同行切磋时,很多人竟然不知道跟踪点?!难道没人看过MSDN么?!汗~图中是调试状态下的变量监视窗口和断点窗口。希望能对你有所帮助。
⑥ 在VS2005里怎么单步调试WEB应用程序我先按f5,再f10,可是不执行,具体怎么做
先设置几个断点
按F5
程序会在断点处暂停
按F11单步调试
⑦ 如何跟踪vb源程序的代码
设置断点.按F8 边执行边观察代码.
⑧ vs2010如何单步调试设置断点之后怎么用怎么观察调试中变量的值
在代码左边的5毫米宽的竖条那里点左键就能加入断点。再点一下可以消去断点。
运行到哪里程序就会停下来。
F5是执行到下一个断点,F10是执行一行语句,F11也是执行一行但是是递归调试所调用的函数。
watch窗口可以看变量。
Break窗口可以设置、删除断点。
⑨ VS2005如何单步调试C++程序
F9在需要的地方设上断点,按F5执行程序,会在断点处停下,然后按
F10
单步执行程序。
F11
可以进入函数内部.
⑩ 在C#编程VS2005中,调试时,怎么才能看见单步运行的结果
窗口里出不来运行的每一步的代码!
窗口当然不会出来,代码是在上面,下面只让你参考那些变量的值什么的
单步执行时,上面的代码会一步步的标成黄色
点下面的即时窗口,那里面可以输入变量
比如你的程序有个string sql = "abc";
那么在即时窗口里输入sql,然后回车,下面会显示abc
也可以使用一些简单的语句,比如:sql.Substring(0,1),会显示a
监视窗口,可以输入变量,比如sql:右边会实时显示当前sql的值