您当前的位置:首页 > 时尚 > 内容

如何用debug(debug卡什么用)

如何用debug(debug卡什么用)?如果你对这个不了解,来看看!

使用GDB调试C语言程序,下面是梦一省1给大家的分享,一起来看看。

如何用debug

GDB(GNU Debugger)是一个由GNU项目开发的强大的源代码级调试工具,主要用于调试C、C++等编程语言。它支持多种操作系统,如Linux、macOS和Windows。GDB允许开发者在程序执行过程中监控、跟踪和修改代码,以便更有效地找出和修复错误。GDB的主要功能包括设置断点、单步执行、查看变量值、栈回溯、内存检查等。GDB可以通过命令行界面或与集成开发环境(IDE)结合使用。

为了说明如何使用GDB,我们将使用一个简单的C程序作为例子。假设我们有一个程序,它用于计算1到10之间所有数的和,并将结果输出到终端。以下是示例程序的代码:

#include <stdio.h>int main(){int i, sum = 0;for (i = 1; i <= 10; i++) {sum += i;}printf("Sum of 1 to 10 is %d\\n", sum);return 0;}

接下来,我们将使用GDB来调试这个程序。首先,我们需要使用gcc编译程序,并在编译时加入-g选项,以生成调试信息。例如,我们可以使用以下命令来编译程序:

gcc -g test.c -o test

现在,我们可以启动GDB,使用以下命令加载我们的程序:

gdb test

当GDB启动时,我们可以在GDB的命令行中输入各种命令来控制程序的执行。以下是一些常用的命令:

break:在指定位置设置断点。例如,我们可以使用以下命令在main函数的第一行设置断点:(gdb) break mainrun:启动程序并运行到第一个断点。例如,我们可以使用以下命令启动程序:(gdb) runstep:执行程序的下一条语句。例如,我们可以使用以下命令执行下一条语句:(gdb) stepprint:打印变量的值。例如,我们可以使用以下命令打印变量sum的值:(gdb) print sumcontinue:继续执行程序直到下一个断点。例如,我们可以使用以下命令继续执行程序:(gdb) continuelist: 查看函数的源代码(gdb) list maindisassemble: 输出汇编代码:(gdb) disassemble main输出变量的内存地址:(gdb) print &sum在GDB命令行中输入x命令,以十六进制格式输出内存地址中的值(address为变量的内存地址):(gdb) x/x address如果要输出多个内存地址中的值,可以使用x命令的参数设置(gdb)x/nfu address其中n表示输出的内存单元数,f表示输出的格式,u表示每个内存单元的大小(默认为字节)。常用的格式有:x:十六进制格式d:十进制格式u:无符号十进制格式o:八进制格式t:二进制格式例如, 要以十进制格式输出10个字节的内存,可以使用以下命令:(gdb) x/10dw address

参考资料:

GDB入门教程:https://www.tutorialspoint.com/gnu_debugger/index.htmGDB高级技巧:https://www.ibm.com/developerworks/cn/linux/l-cn-gdbadv/GDB书籍:《Debugging with GDB: The GNU Source-Level Debugger》

debug卡什么用

步骤一:

库文件准备

从官网上下载对应的固件库,注意文件路径,这里使用的是F1系列,所以下载对应的这个F1的固件库;如下图所示:

步骤二:

新建文件夹

Bin(存放转换成的.bin程序文件)、Libraries(存放启动代码及驱动文件)、Listing(存放编译时产生的中间文件)、Output(存放生成的下载所需的文件及Map文件)、Project(存放工程文件)、User(存放用户程序代码),如下图所示:

步骤三:

将固件库里的文件拷贝到刚新建的相应文件夹里,如下图所示:

上图为直接拷贝固件库的对应的两个文件,固件库文件如下图:

自定义一个main.c文件,或直接拷贝固件库里例程的main.c文件,如下图:

步骤四:

使用Keil新建工程

新建一个工程,如下图所示:

这里要选择自己对应的芯片型号(下图)

添加项目组名称

修改名称及添加相应的文件如下图所示:

最后得到的工程文件效果如下图所示:

步骤五:

配置Target选项卡,如下图所示:

注意这里的IRAM1的Size设置为0x5000是根据芯片来确定的,F103芯片的SRAM大小是20K bytes,计算即得到0x5000.

配置Output选项卡,如下图所示:

Select Folder for Objects… 选择为 Output文件夹。

配置Listing选项卡,如下图所示:

Select Folder for Listings… 选择为 Listing文件夹。

配置User选项卡,如下图所示:

输入fromelf.exe --bin -o ..\Bin\Template.bin ..\Output\Template.axf

如此可以生成.bin文件

5.配置C/C++选项卡,如下图所示:

输入内容USE_STDPERIPH_DRIVER,STM32F10X_MD

6.配置Debug选项卡,如下图所示:

至此,工程模板即已完成。

注意事项:

其实工程的建立过程本质上来说就是建立各种外设的驱动文件,然后通过编译器把这些外设的驱动文件连接起来,再通过用户程序来实现。工程模板建立完成后,后期其他工程都可以使用,只需要添加用户程序即可。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 裸胸鳝的简单介绍

下一篇: wifi中继器自制最简单(自制wifi中继器)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号