本文介绍了一种方法,让gdb随嵌入式设备开机自动运行。出问题后再连接上设备查看原因
在嵌入式系统中,有时会遇到较低概率的死机情况。
这时,因为不太容易复现,会导致调试中的一些麻烦。
在这种情况下,就可以将gdb做到嵌入式文件系统中,随系统的启动自动运行。
从而可以一次性升级多台机器(比如10台),同时测试。只要出问题时,利用gdb查看结果即可
下面介绍实施方案:
1, 需要自行编写一个gdb配置文件,命名为.gdbinit,将其放置在当前目录中,内容类似这样:
#filename:.gdbinit#gdb will read it when starting
file ./bin/sctrl
r
很明显,文件中的每一行,都代表着一个命令。你也可以在其中添加断点的命令
2, 有了这个文件之后,到该目录下直接运行类似下面的命令,即可自动加载并开始运行:
./gdb-arm-linux
3,如果,机器的串口不方便连接,可以使用重定向的方式
首先,.gdbinit中内容中,"r" 的下一行添加"bt"命令。这样会令程序在出问题之后,输出当时的调用栈
然后,启动命令改成这样:
./gdb-arm-linux > /etc/gdb.log
这样处理之后,一但遇到单号 ,只需要telnet连接机器,然后cat /etc/gdb.log就能看到bt的内容了。