直播公开课 | 单片机开发过程中的调试绝招第二课-鸿蒙开发者社区-51CTO.COM

直播公开课 | 单片机开发过程中的调试绝招第二课

韦东山
发布于 2022-7-7 14:08
浏览
4收藏

在上一次直播里,我们介绍了栈回溯、手工修改bin文件打断点,
我们还可以进一步改进:

  1. 栈回溯:修改异常处理函数自动分析栈,借助工具直接找出更具体的调用关系:哪个文件、哪一行
  2. 打断点:上一次课程里只能打一个断点,运行到断点时程序就崩溃。我们可以改进,修改bin文件打多个断点,修改异常处理函数让它打印信息后继续运行。

::: hljs-center
:::
::: hljs-center

》》》点此查看回放《《《

:::

直播公开课 | 单片机开发过程中的调试绝招第二课-鸿蒙开发者社区

直播大咖

韦东山-15年嵌入式培训经验,涉及Linux、FreeRTOS、RT-Thread等,专注于嵌入式操作系统。

直播提纲

绝招1:栈回溯自动化改造
绝招2:实现多个断点:打印信息后继续运行程序

直播亮点

绝招1,揉合Linux、RT-Thread的栈回溯技术,给出一套适合所有裸机、RTOS程序的代码。
绝招2,这个方法是我首创的,曾经在中兴用来解决过一个Linux内核Bug,曾经在某大型机器人公司解决过一个栈溢出的Bug。

直播抽奖

10 块STM32F103-MINI开发板

适合人群

有单片机软件开发基础

分类
单片机开发过程中的调试绝招第 2 课课件.pdf 1.07M 189次下载
已于2022-7-8 11:49:54修改
5
收藏 4
回复
举报
20条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

前排支持韦老师!

回复
2022-7-7 14:24:14
wx62c6c8fb8f4d7
wx62c6c8fb8f4d7

make_ext4fs制作根文件系统时怎么配参数,传入的大小指的是什么?为什么目标文件是空的生成的镜像还是有三十几M

回复
2022-7-7 20:01:26
wx62c6c8c4def01
wx62c6c8c4def01

韦老师yyds!!

回复
2022-7-7 20:02:42
Florian_Ku
Florian_Ku

散列文件和连接用的lds文件有啥区别

回复
2022-7-7 20:17:58
小蚂蚁55
小蚂蚁55

1、韦老师,你好,请问怎么知道要在bin文件的那个位置打断点啊?

回复
2022-7-7 20:20:26
wx62c6c8c4def01
wx62c6c8c4def01

那个工具在哪下载呢?

 

 

 

回复
2022-7-7 20:34:38
足球之路
足球之路

栈回溯 相当于用外部软件实现的喽?

回复
2022-7-7 20:36:17
wx5d1b0efa74f69
wx5d1b0efa74f69

pop  到哪里,也是arm 官方的指令集文档有说明吗?刚刚老师看pop 指令的地方并没有看到呀

回复
2022-7-7 20:50:31
wx5d1b0efa74f69
wx5d1b0efa74f69

第二个技巧是要利用类似与pop 的指令吗?

 

回复
2022-7-7 20:57:12
一名单身家
一名单身家

栈回溯适合哪些类型的错误?

回复
2022-7-7 21:04:55
足球之路
足球之路

想看 写吧

回复
2022-7-7 21:13:53
滴水成冰0
滴水成冰0

发生异常的时候,硬件做的操作,保存那些寄存器,是哪里描述的,在哪里能找到

回复
2022-7-7 21:14:15
足球之路
足球之路

为什么swi栈是这个样子的,没有R4-R11?

回复
2022-7-7 21:27:27
wx62b4562cbc1f5
wx62b4562cbc1f5

栈帧整体上移的时候,返回地址的值不应该改成异常之前的返回地址吗?

回复
2022-7-7 21:45:19
wx62b4562cbc1f5
wx62b4562cbc1f5 回复了 wx62b4562cbc1f5
栈帧整体上移的时候,返回地址的值不应该改成异常之前的返回地址吗?

奥,看到了,PC已经赋给svc的返回地址了~~

回复
2022-7-7 21:47:12
足球之路
足球之路

已经很牛了!

 

回复
2022-7-7 21:55:32
滴水成冰0
滴水成冰0

老师,这个原理可以再讲讲吗

回复
2022-7-7 21:55:55
足球之路
足球之路

那么函数参数多于4个,我也没有保存r4,为什么能运行呢?

回复
2022-7-7 21:58:02
滴水成冰0
滴水成冰0

PC指针的是我们自己保存的吗,没看到是哪里保存的

回复
2022-7-7 21:58:40
wx5d1b0efa74f69
wx5d1b0efa74f69

模拟指令的返回地址就是发生异常之前,也就是调用者里面的地址?

回复
2022-7-7 22:00:38
回复
    相关推荐