banner
按时间整理的学习笔记。

文章归档

Scroll down
Debug

嵌入式开发真正拉开差距的地方,是定位问题的能力。一个问题发生后,能不能快速判断属于启动、文件系统、网络、应用、驱动还是硬件,直接决定修复效率。

一、先确认问题边界

网络问题最怕一上来就改配置。排障前先确认边界:是本机不能访问外部,还是外部不能访问本机;是所有域名都失败,还是只有某个服务失败。

一、嵌入式调试的层次

嵌入式调试比普通应用复杂,因为问题可能出在硬件、启动链路、内核、驱动、文件系统或应用。

常见调试手段:

  • 串口日志。
  • LED 状态灯。
  • JTAG/SWD。
  • OpenOCD。
  • GDB。
  • gdbserver。
  • 逻辑分析仪。
  • 示波器。

一、为什么调试能力很重要

Linux 应用开发真正的难点不只是写代码,而是程序出问题时能不能定位。程序可能在你的机器上正常,在服务器上崩溃;可能测试环境正常,生产环境慢;也可能偶发死锁、内存泄漏、文件句柄耗尽。

调试和排错要形成固定流程:

1
确认现象 -> 收集信息 -> 缩小范围 -> 验证假设 -> 修复 -> 回归
1
请输入关键词进行搜索