完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
调试嵌入式设备时,产生了一个段错误,查资料后明白了如何使用gdb调试该段错误的基本方法,记录一下,免得以后遇见,又忘记怎么操作
1、生成core文件 由于该嵌入式设备本身不支持gdb,所以还是生成core文件,拿到虚拟机中进行调试 使用以下命令生成core文件 ulimit -c ulimit -c unlimited echo "/opt/core.%e.%t" > /proc/sys/kernel/core_pattern cat /proc/sys/kernel/core_pattern ①如果ulimit -c命令打印得出的是0,则表示不支持生成core文件,然后需要使用ulimit -c unlimited命令; ②/proc/sys/kernel/core_pattern文件指的是生成的core文件所放的位置,可以使用cat /proc/sys/kernel/core_pattern命令查看。也可以自定义core文件生成的位置,比如使用命令echo "/opt/core.%e.%t" > /proc/sys/kernel/core_pattern,将生成的core文件保存到/opt目录,并命令为core.%e.%t:%e指运行的程序或进程,%t指生成随机数 2、调试core文件 1、将生成的core文件移动到虚拟机中,可以将该嵌入式设备文件系统挂载到虚拟机中,参考NFS挂载嵌入式设备文件系统。还需要将产生段错误时,所运行的可执行程序一起复制到虚拟机中,另外还需要将所运行的可执行程序所依赖的所有库全部复制到虚拟机中,并且保持库在摄像头时,所在目录的位置,即保证路径要相同 2、使用以下命令以交互式方式开始调试 ./mips-linux-gnu-gdb ipcam core.ipcam.2398 1 ①mips-linux-gnu-gdb是我的摄像头平台所支持的gdb,如果嵌入式设备的系统不支持使用gdb,需要自行安装嵌入式设备平台所支持的gdb ②ipcam是我产生段错误时,所运行的程序; ③core.ipcam.2398是生成的core文件; ④这三个文件都是在用一个目录,所以可以直接执行,如果没有在同一个目录,需要使用绝对目录或者相对目录。 3、在gdb交互中查看所依赖库是否正确加载 info sharedlibrary 如果已找到对应的库则其From和To会有值,syms Read的值为yes,并且右边路径显示的就是库在虚拟机中所在的位置。如果未找到对应的库则From和To为空,syms Read的值为No 4、设置程序ipcam的依赖库的位置 这里设置依赖库的位置有点绕:假设ipcam有两个依赖库,分别为libcrypto.so.1.0.0和libssl.so.1.0.0,并且这两个库在摄像头时,其所在位置分别为/app/lib/libcrypto.so.1.0.0和/lib/libssl.so.1.0.0 ①如果使用命令set sysroot /opt,如果设置位置/opt,那么libcrypto.so.1.0.0和libssl.so.1.0.0在虚拟机的位置则必须分别为/opt/app/lib/libcrypto.so.1.0.0和/opt/lib/libssl.so.1.0.0,没有的目录需要自行创建; ②如果使用命令set sysroot /,设置位置/,那么libcrypto.so.1.0.0和libssl.so.1.0.0在虚拟机的位置则必须分别为/app/lib/libcrypto.so.1.0.0和/lib/libssl.so.1.0.0,没有的目录需要自行创建; ③其他目录设置类似 5、设置依赖库的位置后,再使用info sharedlibrary命令即可看的出来。然后使用bt命令,即可打印出产生段错误的函数,函数调用是从下往上。 |
|
|
|
只有小组成员才能发言,加入小组>>
663 浏览 0 评论
1083 浏览 1 评论
2456 浏览 5 评论
2784 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2619 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
642浏览 9评论
639浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
769浏览 6评论
613浏览 5评论
654浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-11 02:29 , Processed in 0.932145 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号