visual studio 怎样调试程序

visual studio 怎样调试程序,第1张

方法/步骤

1

在visual studio “调试”>>“启用调试”,就可以开始调试程序,或者使用快捷键F5。调试会从程序的头部开始执行,如:main函数,网页中的Page_Load。

2

还可以打断点进行调试,在你希望程序走到哪一步中断的位置打上断点,如下图所示。之后执行调试,如果该断点是在事件响应中的,那该事件发生时,程序会在该断点处中断。(断点处的程序在中断时不会执行)

3

处于中断模式时,把鼠标移动到变量或者对象上,可以看到它的值或者它属性的值。

当程序中断后可以按F11逐语句执行程序(逐语句执行时遇到调用或属性的情况,将会进入调用的方法或者属性进行逐行执行)。

当程序中断后可以按F10逐过程执行程序(逐语句执行时遇到调用或属性的情况,将不会进入调用的方法或者属性进行逐行执行,整个方法会一步执行,只给出结果,不会显示调用方法执行的具体细节)。

当按F11进入一个方法执行时按Shift + F11可跳出该方法,返回原调用该方法的语句处执行下一条语句。

F5,恢复程序的继续运行,除非遇到另一个断点。

单片机可以实现在线调试程序,通过软件设置断点,进行单步调试,这样可以看到单片机是如何一步步执行程序的,从而快速找到问题,解决问题。以Keil和IAR为例介绍一下单片机的在线调试。

1keil

的在线调试功能

以STM32单片机为例,所需要的软件为Keil MDK,仿真工具为J-link,当程序编写完成后,编译通过,通过J-link仿真工具连接电脑和单片机板子,一定要安装好J-link的驱动,在Debug界面选择J-Link,并正确设置Setting界面的下的器件型号,如下图所示。

设置好后,点击工具栏的Debug按钮,就进入在线调试模式了,这时候会出现调试工具栏,如下图所示。

在怀疑有问题的地方设置断点后,运行单步调试,单片机就可以一步步的执行了,在watch窗口可以选择查看单片机的GPIO等寄存器,实时了解各端口和变量的变化情况。

2IAR

的在线调试功能

以STM8单片机为例,以IAR for STM8为例,工具为ST-Link,正确安装好ST-Link的驱动,程序编译通过后,执行Debug and download按钮可以开启在线仿真模式,如下图所示。

在有问题的地方设置断点,执行全速运行后,会在断点处停下,可以执行单步调试功能进入函数,再一步步执行。

这样也可以很容易的找到程序bug。

3使用串口打印进行调试

如果单片机不支持在线仿真功能,可以通过串口打印的形式输出调试信息。首先要把串口打印程序调试通,在有问题的地方通过给变量设置不同的值然后打印,这样也可以很直观的判断程序的运行情况。所需要的工具为USB/TTL。

由于篇幅有限,无法详细描述,大家可以根据以上信息搜具体的教程。

以上就是这个问题的回答,感谢留言、评论、转发。

更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。

简单来说,有两种方式,一种是源码debug,即分析源码来找出bug位置,一般使用printf()打印出程序执行每一步的信息,一种是可执行文件debug,需要使用调试器来进行。

1、源码debug

类似于下面的源码,主要通过程序执行时输出的信息,来定位bug出现的位置,然后再修改源码。

#include <stdioh>

 

void f() { ; }

 

int main()

{

#ifdef _DEBUG

    printf("start main function!\n");

#endif

    void f();

#ifdef _DEBUG

    printf("leave main function !\n");

#endif

    return 0;

}

2、可执行文件调试,windows平台常用的就是vs/vc自带的调试,另外一个就是微软自家开发的调试器windbg。Linux平台以gdb为常用。

IDE自带的调试器以VC60为例,编写完代码后,按快截键盘F11,即可进入调试,此时右键,选择“go to  disassembly"即可查看到程序的反汇编代码 。一般这种情况,主要是为了对C语言进行反汇编学习。

Windbg的功能非常多,可以进行源码调试、可以调试可执行文件、还可以进行内核调试,也可以调试dump文件,用的多了,自然熟悉,要调试可执行文件,只需要点击”File"在d出的对话框中选择“Open Executeable",然后找到自己要调试的程序即可。

Linux常用的是Gdb调试器,值得注意的是,要使用gdb调试,在使用gcc或者g++编译C/c++文件时,需要添加-g参数才可以生成符号表。下图是用gdb分析C++中变量分布的一张截图,大体上看一下长什么样,用的多了自然熟悉,不需要可以去学习。

当我们编写大型c++程序时,每次调试程序可能需要很久才能运行到错误位置。所以,我们可以直接运行而不进行调试,当程序崩溃时选在系统调试器进行调试,则能快速找到错误位置。

Windows *** 作系统有一个默认调试器设置,使程序出现崩溃时,自动调用这个调试器进行调试。这个设置在windows的注册表中。

对于32位 *** 作系统:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/AeDebug/Debugger。

对于64位 *** 作系统:HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Windows NT/CurrentVersion/AeDebug/Debugger。

在这个注册表键中,有两个重要的值:

1、Auto值 : 0表示出现崩溃d出对话框,让用户选择调试器 1表示自动d出默认的调试器。

2、Debugger值,对于windows自带的DrWatson该值为“ DRWTSN32 -p %ld -e %ld -g”,对于 WinDBG该值为“WinDbg的安装目录\windbgexe" -p %ld -e %ld -g”对于Visual Studio该值为"C:\WINDOWS\system32\vsjitdebuggerexe" -p %ld -e %ld"

主要通过以下几个步骤:

1、手机通过数据线连接在电脑上

2、设置android手机为USB调试模式。步骤:menu—

3、如果是window系统,系统会提示安装驱动:

选择正确的androidsdk安装目录,然后点击下一步,系统就开始安装驱动了

4、驱动安装完成之后,重启电脑(通常系统会有“安装新驱动,重启才能生效”的提示),这但应该明白吧

5、重复第1步和第2步,打开命令窗口,检测手机设备是否已经被识别,如下所示:

“device”就是检测到得手机设备

6、接下来就开始在eclipse上调试android程序了,右击android工程-

7、选中手机设备,点击OK之后,程序就开始在真机上安装了,控制台输出如下信息:

[2011-04-0722:24:49-HelloWorld]UploadingHelloWorldapkontodevice‘′

[2011-04-0722:24:49-HelloWorld]InstallingHelloWorldapk

[2011-04-0722:24:53-HelloWorld]Suess!

[2011-04-0722:24:53-HelloWorld]Startingactivitycomeightqiuactivityondevice

[2011-04-0722:24:57-HelloWorld]:Starting:Intent{act=androidintentactionMAINcat=[androidintentcategoryLAUNCHER]cmp=comeightqiuactivity/}

8设置应用程序为调试模式。 *** 作:编辑xml增加调试参数android:debuggable="true",如下:

9执行真机调试 *** 作:ECLIPSE调试对话框中,Target窗口中选择Manual,点击debug按钮,选择真机设备,开始调试。

注:不管是否启用ECLIPSE环境,任何Android软件只要在真机上运行发生异常,都可以在命令行窗口下查看具体异常信息:

执行:/adblogcat可以查看到更多的系统异常消息。在这些消息中要注意查看Causedby:打头的行,这些行指明了在哪行代码出的错误

10、运行这个应用程序,这样就可以使用手机来测试了

程序编译、连接,用Debug加载、跟踪。

在启动应用程序进行调试时,Eclipse 会自动切换到Debug透视图。最常见的调试步骤是设置断在点,这样可以检查条件语句或循环内的变量和值。要在Java透视图的视图中设置断点,双击选择的源代码文件,在一个编辑器中打开它。遍历代码,将鼠标放在可疑代码一行的标记栏(在编辑器区域的左侧)上,双击即可设置断点。

子程序概念

能被其他程序调用,在实现某种功能后能自动返回到调用程序去的程序。其最后一条指令一定是返回指令,故能保证重新返回到调用它的程序中去。也可调用其他子程序,甚至可自身调用在一个加工程序中,如果其中有些加工内容完全相同或相似,为了简化程序,可以把这些重复的程序段单独列出,并按一定的格式编写成子程序。主程序在执行过程中如果需要某一子程序,通过调用指令来调用该子程序,子程序执行完后又返回到主程序,继续执行后面的程序段。

以上就是关于visual studio 怎样调试程序全部的内容,包括:visual studio 怎样调试程序、单片机程序怎么在电脑上调试用什么软件好、C语言 怎么调试程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9473315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存