我已经交叉编译了 vscpd 程序以下是 GDB 的回溯。在这里,我没有得到导致该程序终止的 SIGILL 的原因。
这个错误是否意味着 --> libcrypto.so.1.0.0 --> 共享库文件包含非法指令?
pi@raspberrypi ~ $ gdb vscpd
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 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 "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/pi/vscpd...done.
(gdb) break main
Breakpoint 1 at 0xee0c: file vscpd.cpp, line 99.
(gdb) run
Starting program: /home/pi/vscpd
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Program received signal SIGILL, Illegal instruction.
0x400fc4c0 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
(gdb) bt
#0 0x400fc4c0 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
Cannot access memory at address 0x0
#1 0x400f8ee4 in OPENSSL_cpuid_setup ()
from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
#2 0x4000f250 in ?? () from /lib/ld-linux-armhf.so.3
#3 0xbefff96e in ?? ()
Cannot access memory at address 0x0
#4 0xbefff96e in ?? ()
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)