1、调试情况下软件崩溃
1.1 直接 gdb 调试程序;
1.2 按 下文 2.1 步骤调试;
2、正常使用情况下软件崩溃
2.1 如果崩溃的机器能插上串口调试线调试
2.1.1 通过 ps 指令,查看软件是否还在运行;
2.1.2 如果程序没在运行
1)输入指令 "dmesg | tail -n 100" 查看机器崩溃时最后的100条终端输出信息,分析定位问题;
2.1.3 如果程序在运行
1)输入指令 "dmesg | tail -n 100" 查看机器崩溃时最后的100条终端输出信息,分析定位问题;
2)输入指令 "cat /proc/进程号/status" 查看进程信息,分析定位问题;(信息分析:优快云)
3)输入指令 "strace -p 进程号" 查看进程系统调用情况;(如果是死锁的话,可以看到卡在系统的锁调用处)
2.2 如果崩溃的机器不能插上串口调试线调试
2.2.1 如果有崩溃日志
1)准备可以调试的机器,将运行软件升级到和产生崩溃的机器一致;
2)拷贝崩溃文件到调试机器中,位置随意;
2)通过cd指令切换路径到可执行文件路径;
3)执行 gdb ./可执行文件名 崩溃文件的绝对路径;
4)输入 bt 指令查看崩溃时的地方;
2.2.2 如果没有崩溃日志
不知道怎么办