と同様です。があります。しかし、私はこの質問が異なると思います。gdbがスタックの問題を壊しています。機能と行番号が表示されません。
私はgdb-cross-aarch64
を使用して、アーム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
にあると確信しています。
私はここで間違っていますか?それ以外に何をすべきですか?
ありがとうございました
@tofroありがとうございます。 "私はシグナルSIGABRTがlibOmxCore.soで引き起こされていると確信しています。" libOmxCore.soの関数に意図的に 'assert(0)'を植えているためです。私は 'gdb'の使い方を教えたいので。 – Alan