GDB调试
文章平均质量分 90
咕咚.萌西
这个作者很懒,什么都没留下…
展开
-
VSCode调试单片机
文章目录一、不同系统中单片机的调试方式二、软件安装2.1 交叉编译器2.2 gdb客户端2.3 gdb服务器2.4 Cortex-Debug三、Cortex-Debug配置3.1 配置Cortex-Debug中工具链路径3.2 配置运行和调试四、调试目标代码4.1 连接开发板和调试器4.2 设置断点4.3 启动调试一、不同系统中单片机的调试方式一般情况下我们都使用Windows平台下的编译器编译和调试单片机用的比较多,到了Linux下使用的编译器通常会是gcc,对应的调试工具是gdb。但是使用这两者需原创 2022-01-17 22:27:35 · 3210 阅读 · 7 评论 -
【GDB调试-5】远程调试
文章目录一、gdbserver1.1 安装gdbserver1.2 配置防火墙二、gdbserver的启动与连接2.1 gdbserver启动2.2 gdb连接三、gdb远程调试stm323.1 stlink-tools安装3.2 st-util启动与连接3.3 远程调试测试3.4 总结一、gdbserver1.1 安装gdbserver使用Linux远程调试目标机器上面的程序时,目标机器需要安装gdbserver,启动测试程序后与本地gdb进行通讯Ubuntu下安装命令如下:sduo apt-g原创 2021-11-24 22:47:35 · 5173 阅读 · 0 评论 -
【GDB调试-4】调试Release版本程序
一、Debug和Release1.1 Debug版本在软件开发过程中可以使用Debug版本软件进行调试,调试版本中包含很多调试信息,易于发现问题,如果出现问题,Debug版本软件所提供的调试信息可以帮助我们以最快的速度解决问题。1.2 Release版本当软件开发完成后,我们为了增加程序运行效率,此时会编译一个Release版本的程序,里面不包含调试信息,一旦出现问题之后我们想要对其进行调试,就没有那么容易了。1.3 区别两个版本之间除了调试信息之间的差异外,还包含优化等级的差异,将同样的程序编原创 2021-11-20 16:18:04 · 2752 阅读 · 0 评论 -
【GDB调试-3】多线程死锁
一、进程和线程进程:程序加载到内存后得到进程程序中某个数据集合的一次运行活动线程:进程中的一个执行单元操作系统中一个可以调度的实体进程中一个相对独立的控制流序列两者联系:系统分配资源的基本单位是进程,但是CPU调度的基本单位是线程进程中可以存在多个线程共享进程资源线程不能脱离进程单独存在,只能依赖于进程执行任意线程都可以创建其他新的线程线程有生命周期,有诞生和死亡完成一件复杂的工作,单线程已经无法满足需求,我们是应该首选多线程还是多进程呢?进程使用的资源要比线程多得多原创 2021-11-19 02:39:49 · 1905 阅读 · 0 评论 -
【GDB调试-2】内存检查(AddressSanitizer的使用)
一、内存错误类型在程序中有如下几种常见的错误类型:内存泄漏栈溢出堆溢出全局数据访问越界已经释放的内存继续被使用二、内存泄漏检查和调试2.1 内存泄漏内存泄漏是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,由于一个进程的堆空间始终是有限的,32位的程序最多可以使用的内存不会超过2GB,如果代码中存在内存泄漏,短时间内程序不会崩溃,但是长时间运行直到没有内存可分配时,程序会崩溃。...原创 2021-11-16 03:01:06 · 4885 阅读 · 0 评论 -
【GDB调试-1】认识GDB
【GDB调试-1】认识GDB一、GDB是什么?GDB是GUN项目的调试器,允许查看正在执行的程序里面在做什么,或者是程序崩溃的瞬间在做些什么。GDB可以完成如下四种功能,在这些功能的基础上也可以做其他的事情:启动程序,按照指定的方式运行让程序在指定条件下停止当程序停止后查看发生了什么修正bug带来的影响从而去调试下一个问题GDB可以在本地运行,也可以在远程运行(嵌入式平台,或者通过端口映射等方式进行远程访问),也可能是虚拟机里面运行,对于操作环境,覆盖了Unix和类Unix系统,Wind原创 2021-08-29 00:32:00 · 651 阅读 · 0 评论