开发调试技巧
文章平均质量分 96
码农爱学习
码农爱学习,专注嵌入式~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
嵌入式Linux利用core-dump文件和gdb工具分析程序崩溃问题
本文介绍了通过core-dump文件定位程序崩溃问题的方法。首先说明了开启core-dump文件生成的条件,包括临时和永久配置方案,以及自定义core文件名称和目录的方法。接着在Ubuntu虚拟机和嵌入式Linux板子上进行了测试,演示了编译调试代码、生成core文件并使用gdb分析的过程。重点解决了嵌入式Linux中永久配置core-dump的问题,包括修改limits.conf、sysctl.conf等系统文件,并添加开机启动脚本。最后针对交叉编译环境下的调试问题,建议使用静态链接编译程序以确保gdb能原创 2025-12-29 23:05:50 · 1043 阅读 · 0 评论 -
内存问题排查工具ASan初探
文章摘要 本文介绍了ASan(AddressSanitizer)内存错误检测工具及其在C/C++程序中的应用。ASan由Google开发,通过编译时插桩技术检测内存使用错误,如未分配/释放内存访问、堆栈溢出等,并提供详细错误报告。文章详细说明了ASan的编译选项(-fsanitize=address)和常见参数(如leak、thread等),并通过三个实例展示了其检测能力:内存泄漏(24字节泄漏)、堆缓冲区溢出(memcpy越界12字节)和栈缓冲区溢出(固定数组越界)。ASan能精准定位错误位置和内存分配信原创 2025-08-11 22:48:54 · 1467 阅读 · 0 评论 -
如何使用backtrace定位Linux程序的崩溃位置
摘要:利用backtrace定位嵌入式Linux程序崩溃问题 在嵌入式Linux开发中,多人协作时定位代码崩溃点往往困难。本文介绍使用backtrace工具快速定位崩溃位置的方法。当程序崩溃触发SIGSEGV等信号时,通过signal捕获信号并在handler中调用backtrace获取调用栈信息,配合addr2line工具将地址转换为可读的函数名和行号。关键步骤包括:编译时添加-g调试选项,使用backtrace获取堆栈地址,backtrace_symbols转换地址为字符串,addr2line解析具体代原创 2025-07-05 23:25:08 · 1419 阅读 · 0 评论 -
如何给printf打印增加颜色、时间戳、文件名、行号、函数名
本文介绍了在嵌入式Linux开发中优化日志打印的方法,通过添加颜色、等级标识等额外信息提高调试效率。首先解释了终端颜色控制原理(如"\033[31m"表示红色),并给出了基础颜色打印示例。然后展示了通过宏定义封装不同颜色等级的打印函数(如ERROR用红色,WARNING用黄色)。文中还详细说明了可变参数宏##__VA_ARGS__的作用,以及如何避免空参数导致的语法错误。最后提出了一个综合封装方案,将颜色代码、等级标识(INFO/WARN/ERRO)整合到统一打印宏中,使日志输出更结构化原创 2025-06-16 22:46:24 · 1497 阅读 · 0 评论
分享