
操作系统前传第六课--开发中的辅助工具
发布日期:2021-05-07 13:23:53
浏览次数:9
分类:精选文章
本文共 479 字,大约阅读时间需要 1 分钟。
在处理大型项目时,程序崩溃可能会导致难以定位错误。以下是解决方法:
启用core dump:在运行前设置 ulimit -c unlimited
,允许生成core文件记录崩溃信息。
编译保留调试信息:使用 gcc -g
编译,生成带有调试信息的可执行文件,以便使用 addr2line
和其他工具分析问题。
运行程序并生成core文件:在设置core dump后,运行程序,确保会生成core文件。注意不要使用 strip
分割调试信息,因为这将破坏调试文件。
分析core文件:使用 dmesg
查看错误日志,获取崩溃时的内存状态和寄存器值,提供关键的错误位置信息。
定位错误:使用 addr2line
将错误地址转换为文件和行号,快速定位问题所在。
检查编译选项:确保使用了 gcc -g
编译,以保留调试信息。避免在调试后使用 strip
,因为这会去除调试符号,影响后续分析。
分析目标文件:使用 ar
和 nm
工具查看目标文件,确认符号链接是否正确,确保所有符号都有正确的内存地址。
通过以上步骤,可以有效地定位和修复程序崩溃的问题,提高开发效率。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月16日 05时51分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python提升回测速度concurrnet.futures模块详解
2019-03-04
Python语言'类'概念再理解
2019-03-04
(2019.6.27)Anaconda清华镜像已恢复使用
2019-03-04
Robomongo使用教程:踩着前辈的路
2019-03-04
Python中Class类与def函数的区别
2019-03-04
OpenAI Gym简介及初级实例
2019-03-04
用Matplotlib和Gym优雅地呈现股票交易智体
2019-03-04
Github上量化交易相关项目汇总
2019-03-04
JS取出两个数组中的不同或相同元素
2019-03-04
Ubuntu 18.04 zip压缩文件及其文件 夹中的所以 内容
2019-03-04
int 转 CString
2019-03-04
Edit编辑框自动换行与长度
2019-03-04
如何在Windows上搭建NFS服务器实现开发板与Windows之间的文件共享
2019-03-04
英语02_单词词性
2019-03-04
C语言12_预处理 #
2019-03-04
低通滤波器的设计
2019-03-04
窄带随机过程的产生
2019-03-04
随机四则运算
2019-03-04
Maven
2019-03-04