Bug #2780
closedNLSR on raspberry pi - runtime error
0%
Description
Cross compiled NLSR starts on raspberry pi but quits with the error:
ERROR: error while connecting to the forwarder
The following is the back trace of it in gdb:
pi@raspberrypi1 ~/Desktop $ gdb ./pi/bin/nlsr
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/Desktop/pi/bin/nlsr...done.
(gdb) run
Starting program: /home/pi/Desktop/pi/bin/nlsr
[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.
0xb6c76600 in _armv7_neon_probe () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
(gdb) bt
#0 0xb6c76600 in _armv7_neon_probe () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
#1 0xb6c72fe4 in OPENSSL_cpuid_setup () at armcap.c:69
#2 0xb6fe8254 in ?? () from /lib/ld-linux.so.3
#3 0xbefff908 in ?? ()
Cannot access memory at address 0x0
#4 0xbefff908 in ?? ()
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) continue
Continuing.
Program received signal SIGILL, Illegal instruction.
_armv7_tick () at armv4cpuid.S:17
17 armv4cpuid.S: No such file or directory.
(gdb) continue
Continuing.
log4cxx: setFile(/home/pi/Desktop/nlsrLog/nlsr.log,true) call failed.
log4cxx: IO Exception : status code = 13
log4cxx: setFile(/home/pi/Desktop/nlsrLog/nlsr.log,true) call failed.
log4cxx: IO Exception : status code = 13
log4cxx: No output stream or file set for the appender named [].
ERROR: error while connecting to the forwarder
[New Thread 0xb4bc0420 (LWP 2319)]
[Thread 0xb4bc0420 (LWP 2319) exited]
[Inferior 1 (process 2316) exited normally]
Updated by Davide Pesavento almost 10 years ago
The two SIGILL caused by openssl are expected. Openssl tries to detect the capabilities of the host CPU by executing some instruction that are available only on some versions of arm, and checking if they trigger a SIGILL or not. Normally openssl installs its own signal handler that traps and ignores the SIGILL, but when run under gdb all signals are sent to the debugger first (and typing continue
at the gdb prompt is the right thing to do).
Is nfd still alive after nlsr terminates?
Updated by Ashlesh Gawande almost 10 years ago
Yes nfd is still alive after nlsr terminates.
Updated by Ashlesh Gawande almost 10 years ago
- Subject changed from NLSR on raspberry pi - OpenSSL error to NLSR on raspberry pi - runtime error
Updated by Lan Wang almost 10 years ago
So the problem has something to do with log4cxx?
Updated by Ashlesh Gawande almost 10 years ago
I cannot reproduce the log4cxx error that I got earlier. I changed the permissions of the folder to which nlsr was writing earlier, seems like that corrected it. This is what the new gdb trace looks like:
pi@raspberrypi1 ~/Desktop $ gdb ./pi/bin/nlsr
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/Desktop/pi/bin/nlsr...done.
(gdb) run
Starting program: /home/pi/Desktop/pi/bin/nlsr
[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.
0xb6c76600 in _armv7_neon_probe ()
from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
(gdb) continue
Continuing.
Program received signal SIGILL, Illegal instruction.
_armv7_tick () at armv4cpuid.S:17
17 armv4cpuid.S: No such file or directory.
(gdb) continue
Continuing.
ERROR: error while connecting to the forwarder
[New Thread 0xb4bc2420 (LWP 2294)]
[Thread 0xb4bc2420 (LWP 2294) exited]
[Inferior 1 (process 2278) exited normally]
(gdb) bt
No stack.
(gdb) continue
The program is not being run.
(gdb)
Updated by Ashlesh Gawande over 9 years ago
- Status changed from New to Resolved
ndn-cxx, NFD, NLSR were cross compiled (using the crosstool-ng to build the gcc for cross compilation).
cryptopp, openssl, protobuf were also cross compiled this time (as copying the lib and include from the Pi did not work for these).
NLSR has no run time error and runs correctly.
Updated by Nicholas Gordon almost 8 years ago
- Status changed from Resolved to Closed