问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

visual studio 怎样调试程序

发布网友 发布时间:2022-04-12 18:02

我来回答

3个回答

懂视网 时间:2022-04-12 22:23

开始调试 从 “调试” 菜单中选择 “开始” 、 “逐语句” 或 “逐过程” 。 - 或 - 在源窗口中,右击可执行代码中的某行,然后从快捷菜单中选择 “运行到光标处” 。 如果选择“启动”,则应用程序启动并一直运行到断点。可以在任何时刻中断执行,以检查,

开始调试

  1. 从“调试”菜单中选择“开始”、“逐语句”或“逐过程”。

    - 或 -

  2. 在源窗口中,右击可执行代码中的某行,然后从快捷菜单中选择“运行到光标处”。

如果选择“启动”,则应用程序启动并一直运行到断点。可以在任何时刻中断执行,以检查值,修改变量,或检查程序状态。有关更多信息,请参见中断执行。

若选择了“逐语句”或“逐过程”,应用程序启动并执行,然后在第一行中断。

如果选择“运行到光标处”,则应用程序启动并一直运行到断点或光标位置,具体看是断点在前还是光标在前。可以在源窗口中设置光标位置。某些情况下,不出现中断。这意味着执行始终未到达设置光标处的代码。


“调试”菜单提供了三个逐句通过代码的命令:

  • 逐语句

  • 逐过程

  • 跳出

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

    在嵌套函数调用上,“逐语句”将进入并单步执行嵌套最深的函数。如果对类似 Func1(Func2()) 的调用使用“逐语句”,调试器将进入并单步执行函数 Func2。

    在本机代码中,如果要进入并单步执行特定的嵌套函数,请使用快捷菜单中的“单步执行特定函数”命令。

    位于函数调用的内部并想返回到调用函数时,请使用“跳出”。“跳出”将一直执行代码,直到函数返回,然后在调用函数中的返回点处中断。

    参考http://msdn.microsoft.com/zh-cn/library/a3cwf295(v=vs.90).aspx

    用“反汇编”窗口

    只有在“选项”对话框中的“调试”节点下启用了地址级调试后,该功能才可用。但对于脚本或 SQL 调试是不可用的。

    “反汇编”窗口显示与编译器所创建的指令对应的汇编代码。如果正在调试托管代码,则这些汇编指令对应于由实时 (JIT) 编译器创建的本机代码,而不是由 Visual Studio 编译器生成的 Microsoft 中间语言 (MSIL)。
    除汇编指令外,“反汇编”窗口还可显示如下可选信息:
    每条指令所在的内存地址 对于本机应用程序,这是实际内存地址。对于 Visual Basic、C# 或托管代码,这是距离函数开头的偏移量。
    程序集代码派生于的源代码。
    代码字节 — 实际计算机或 MSIL 指令的字节表示形式。
    内存地址的符号名。
    对应于源代码的行号。
    汇编语言指令由助记符(指令名称的缩写)和代表变量、寄存器以及常量的符号所组成。每一条机器语言指令由一个汇编语言助记符代表,通常其后还跟有一个或多个变量、寄存器或常量。
    如果您无法阅读汇编语言但又想充分利用“反汇编”窗口,请参考有关汇编语言编程的好书。汇编语言编程超出了我们对“反汇编”窗口进行简单介绍的讨论范围。
    汇编语言代码在很大程度上依赖处理器的寄存器(对托管代码而言,依赖公共语言运行库寄存器),您将发现协同使用“反汇编”窗口和“寄存器”窗口将很有用,可以允许您检查寄存器内容。
    您很可能愿意使用汇编语言,而从来不会愿意或需要查看原始的、数字形式的机器代码指令。不过,如果愿意的话,可以利用“内存”窗口或从“反汇编”窗口的快捷菜单中选取“代码字节”来查看。

    热心网友 时间:2022-04-12 19:31

    1实际上我们在下意识地按下“F5”键时。vs已经开始调试了。那为什么程序并没能停下来呢?那是因为我们没有设置断点。

    2设置断点的方法。在你想让程序停下来的地方,找到如图代码左侧的那个竖直栏,用鼠标点一下会生成一个红点。再重新按F5。程序就会执行到断点暂停了。

    3暂停时vs会自动为我们展示当前局部变量的值以及堆栈上正在调用的函数。这是十分有用的。可以让我们清晰地知道错误可能出现在哪。

    4按“F10”会执行“下一步”。而按“F11”会执行“下一句”。这两个的区别在于,F10会执行当前层次,就是在同一函数或同一递归层次的“下一步”。而F11会执行“自然意义”的下一步。

    5似乎有点抽象。举个例子吧。如图下一步是要执行一个函数。当前层次的下一步就是”执行完这个函数“。自然意义上的下一步就是”执行这个函数的第一步“

    6好了。、此外还有ctrl+shift+F5可以快速地重新编译并重新调试这个工程。shift+F11可以跳回刚刚按F11的位置~嗯。、知道这几个调试功能就用得差不多了。

    热心网友 时间:2022-04-12 20:49

    快捷键F5,项目右键菜单->调试->启用新实例,点击项目右键菜单->属性->配置属性->调试,可以设置调试的相关参数:
    1、命令:默认是$(TargetPath),就是启动输出的可执行程序;
    2、命令参数:启动被调试程序时使用的命令行参数;
    3、工作目录:启动被调试程序时使用的当前文件夹。影响GetCurrentDir,以及加载dll;
    4、附加:否-启动新进程 是-附加到已经存在的进程中。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 如何设置outlook要求对方收到邮件后回复 收到简历邮件后怎么编辑好后回复 收到excel邮件填完数据如何回复 发出的邮件收到回复后,怎么回复 鲸,海豚,海龟,海豹等动物和鱼有何相似,为什么它们不是鱼 海豚和海豹这两个海生动物哪个体重更重点? 海豚海狮海马海豹哪个不是鱼 海豚和海豹哪个大 跟客户视频会议后如何回复邮件 海豚 海狮 海豹都是哺乳动物 海豹怎么画 哔哩哔哩直播姬怎么直播除游戏之外的,例如网页上的视频,ps之类的 路上有人给我一个口罩,然后让我扫个二维码,买红牛,他代付是不是骗子?_百度问一问 光由太阳到地球大约需要多少分钟 别人让我扫二维码注册乐促安全吗 东兴证券股是什么股票?东兴证券股票业绩报告?同花顺牛叉诊股东兴证券? 光从太阳到地球的时间算不算延迟? 东兴证券股股票分析?东兴证券个股吧?东兴证券股最新? 3d走势图有什么规律? 光由太阳到达地球大约需要多少分钟 腊肥肠怎么做好吃又简单 腊肥肠怎么做好吃,腊肥肠的吃法 求转DjVu到PDF 求 你给的爱只是说说而已 的个性签名。。。要伤感的。。 爆炒腊肥肠怎么做好吃 你的举动伤了我的心,你所谓的喜欢有多喜欢只不过是说说而已,这两句话的意思_百度问一问 酸豆角炒腊肥肠的做法,酸豆角炒腊肥肠怎么做 红烧腊肥肠的做法,红烧腊肥肠怎么做好吃,红烧 如果爱只是说说而已…… 说喜欢你的人却记错你的生日,说喜欢就只是说说而已吧 只是说说而已 我现在真的不知道该说什么了,他所谓的喜欢也就只是说说而已吧,没有一点儿实际行动, VS窗口程序怎么调试 曾经说过的喜欢你,只是说说而已的吗? 星学院之魔法礼服十二星座 十二星座的魔法战衣 如果爱情只是说说哑巴怎样表达 蚂蚁花呗逾期一天 星学院的剧情梗概 如果你对象误以为你对他的喜欢只是说说而已怎么办?