最近在项目中遇到浏览器崩溃问题,产生了coredump。但用gdb看,出现:
2 0x011d5096 in ?? ()
#3 0x011d50dc in ?? ()
#4 0x011d63f6 in ?? ()
#5 0x011ad266 in ?? ()
#6 0x00ec1fa4 in ?? ()
#7 0x00f2746c in ?? ()
#8 0x00f275ec in ?? ()
#9 0x00f2771e in ?? ()
#10 0x00f27768 in ?? ()
#11 0x00f27802 in ?? ()
#12 0x00e901f8 in ?? ()
#13 0x00e9c53c in ?? ()
#14 0x016d1c26 in ?? ()
#15 0x016ca906 in ?? ()
在gdb下 用 set sysroot / 然后再bt, 能看到一些库中的函数了。
当gdb无法显示so动态库的信息或者显示信息有误时,通常是由于库搜索路径错误导致的,可使用set sysroot、set solib-absolute-prefix、set solib-search-path来指定库搜索路径。
1. set sysroot 与 set solib-absolute-prefix 是同一条命令,实际上,set sysroot是set solib-absolute-prefix 的别名。
2. set solib-search-path设置动态库的搜索路径,该命令可设置多个搜索路径,路径之间使用“:”隔开(在linux中为冒号,DOS和Win32中为分号)。
3. set solib-absolute-prefix 与 set solib-search-path 的区别:
总体上来说solib-absolute-prefix设置库的绝对路径前缀,只对绝对路径有效;而solib-search-path设置库的搜索路径,对绝对路径和相对路径均起作用。