一、启动gdb调试
方式一:
gdb exe core
方式二:
gdb exe
(gdb) core-file core
方式三:
gdb -c core
(gdb) file exe
二、GDB设置动态库搜索路径
- 原文地址:GDB动态库搜索路径
当GDB无法显示so动态库的信息或者显示信息有误时,通常是由于库搜索路径错误导致的,可使用set sysroot
、set solib-absolute-prefix
、set solib-search-path
来指定库搜索路径。
set sysroot
与set solib-absolute-prefix
是同一条命令,实际上,set sysroot是set solib-absolute-prefix 的别名set solib-search-path
设置动态库的搜索路径,该命令可设置多个搜索路径,路径之间使用“:”隔开(在linux中为冒号,DOS和Win32中为分号)。
set solib-absolute-prefix 与 set solib-search-path 的区别
总体上来说solib-absolute-prefix设置库的绝对路径前缀,只对绝对路径有效;而solib-search-path设置库的搜索路径,对绝对路径和相对路径均起作用。(编译器自动链接的so库多采用绝对路径)。
设备上缺少lib库或者lib库被strip时,需要用到其他路径的动态库。
set solib-absolute-prefix /mnt/test/lib
set solib-search-path /opt/fslc-framebuffer/2.4.4/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/lib:/opt/fslc-framebuffer/2.4.4/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib
#其他方式、设置系统动态库路径
set sysroot /opt/xxx/sysroots/aarch64-poky-linux
完整示例
gdb exe
(gdb) set solib-absolute-prefix /mnt/test/lib
(gdb) set solib-search-path /mnt/test/lib
(gdb) core-file core
(gdb) bt
其他命令
info sharedlibrary