【发布时间】:2014-10-31 18:23:54
【问题描述】:
尝试使用 gdb 调试程序时,在 OPENSSL_cpuid_setup 中报告 SIGILL 失败。
使用这个简单的代码,我有相同的行为:
#include <openssl/ssl.h>
int main()
{
SSL_library_init();
}
它编译和运行良好,但在回溯后以 gdb 报告开始
Program received signal SIGILL, Illegal instruction.
0xb6b2eb40 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
(gdb) where
#0 0xb6b2eb40 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
#1 0xb6b2b404 in OPENSSL_cpuid_setup () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
#2 0xb6fdf058 in call_init (l=<optimized out>, argc=1, argv=0xbefff7d4, env=0xbefff7dc) at dl-init.c:78
#3 0xb6fdf134 in _dl_init (main_map=0xb6fff958, argc=1, argv=0xbefff7d4, env=0xbefff7dc) at dl-init.c:126
#4 0xb6fcfda4 in _dl_start_user () from /lib/ld-linux-armhf.so.3
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
如何在 gdb 下运行这样的程序?
【问题讨论】:
标签: c linux openssl gdb raspberry-pi