【发布时间】:2016-12-24 23:56:27
【问题描述】:
我知道有一个类似的 question。但我认为这个问题是不同的。
我正在使用 gdb-cross-aarch64 分析在 arm arch64 设备上生成的转储核心文件。
我的命令行是这样的:
gdb-cross-aarch64 /path_to/gst-launch-1.0 /path_to/core.2135
而gst-launch-1.0 依赖于共享库libOmxCore.so。
这是gdb的输出:
GNU gdb (GDB) 7.9.1
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-linux --target=aarch64-poky-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./work/aarch64-poky-linux/gstreamer1.0/1.4.5-r0/image/usr/bin/gst-launch-1.0...done.
[New LWP 2135]
[New LWP 2137]
[New LWP 2141]
[New LWP 2139]
[New LWP 2138]
[New LWP 2136]
[New LWP 2143]
[New LWP 2142]
[New LWP 2140]
warning: Could not load shared library symbols for 46 libraries, e.g. linux-vdso.so.1.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
Core was generated by `gst-launch-1.0 filesrc location=samplevideo.mp4 ! decodebin ! fakesink'.
Program terminated with signal SIGABRT, Aborted.
#0 0x0000007fa1d42cb0 in ?? ()
(gdb) set sysroot /Disk_1/Alan_s_Work/path_to/image/
Reading symbols from /Disk_1/Alan_s_Work/path_to/libOmxCore.so...done.
(gdb) bt
#0 0x0000007fa1d42cb0 in ?? ()
#1 0x0000007fa1d46120 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
如上图,我在gdb中设置了sysroot,libOmxCore.so和gst-launch-1.0中的符号被gdb读取。
但我仍然无法通过gdb 看到有效的堆栈回溯。
我很确定signal SIGABRT 是由libOmxCore.so 引起的。
我在这里做错了什么?或者我还应该做什么?
谢谢
【问题讨论】: