我知道有一個類似在那裏。但我認爲這個問題是不同的。GDB的腐敗堆棧問題,不顯示功能和行號
我使用gdb-cross-aarch64
來分析arm arch64設備上生成的轉儲核心文件。
我的命令行是這樣的:
gdb-cross-aarch64 /path_to/gst-launch-1.0 /path_to/core.2135
和gst-launch-1.0
是取決於LIB 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
引起的。
我在這裏做錯了什麼?或者我還應該做什麼?
謝謝你
謝謝@tofro。 「我非常確定信號SIGABRT是由libOmxCore.so引起的」 因爲我故意在libOmxCore.so函數中設置了「assert(0)」。因爲我想指導自己如何使用'gdb'。 – Alan