Overview
Features
Download
Documentation
Community
Add-Ons & Services

Troubles on ARM - SIGSEGV

A general discussion forum.

Troubles on ARM - SIGSEGV

Postby HardRock » 28 Mar 2013, 13:57

Hi all!

I'm trying to run Poco on ARM device with small amount of memory (about 54M at all).
I have compiled Poco with compiler from Buildroot, also i used uClibc instead STLPort.

But it doesn't work =(

strace log:
# /opt/strace-armv4l /opt/opt/wavecon/test.bin
execve("/opt/opt/wavecon/test.bin", ["/opt/opt/wavecon/test.bin"], [/* 8 vars */]) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40005000
stat("/etc/ld-uClibc.so.cache", 0xbee51af8) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/libPocoFoundation.so.16", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libPocoFoundation.so.16", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/libPocoFoundation.so.16", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0775, st_size=1730560, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40006000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\20\35\t\0004\0\0\0"..., 4096) = 4096
mmap2(NULL, 1789952, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4000e000
mmap2(0x4000e000, 1699652, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4000e000
mmap2(0x401b5000, 29348, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x19f) = 0x401b5000
mmap2(0x401bd000, 24356, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401bd000
close(3) = 0
mprotect(0x4000e000, 1699652, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0x40006000, 4096) = 0
open("/usr/local/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libpthread.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=64836, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40006000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\204=\0\0004\0\0\0"..., 4096) = 4096
mmap2(NULL, 106496, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401c3000
mmap2(0x401c3000, 41604, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401c3000
mmap2(0x401d5000, 22340, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa) = 0x401d5000
mmap2(0x401db000, 6420, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401db000
close(3) = 0
munmap(0x40006000, 4096) = 0
open("/usr/local/lib/librt.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/librt.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/librt.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/librt.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=4920, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40006000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\344\4\0\0004\0\0\0"..., 4096) = 4096
mmap2(NULL, 40960, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401dd000
mmap2(0x401dd000, 2168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401dd000
mmap2(0x401e5000, 4124, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401e5000
close(3) = 0
munmap(0x40006000, 4096) = 0
open("/usr/local/lib/libm.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libm.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/libm.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libm.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=48840, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40006000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\304\23\0\0004\0\0\0"..., 4096) = 4096
mmap2(NULL, 81920, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401e7000
mmap2(0x401e7000, 43720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401e7000
mmap2(0x401f9000, 4156, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa) = 0x401f9000
close(3) = 0
munmap(0x40006000, 4096) = 0
open("/usr/local/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=314232, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40006000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\340\254\0\0004\0\0\0"..., 4096) = 4096
mmap2(NULL, 348160, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401fb000
mmap2(0x401fb000, 291984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401fb000
mmap2(0x4024a000, 5680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x47) = 0x4024a000
mmap2(0x4024c000, 15532, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4024c000
close(3) = 0
mprotect(0x401fb000, 291984, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0x40006000, 4096) = 0
open("/usr/local/lib/libm.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libm.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/libm.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libm.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=48840, ...}) = 0
close(3) = 0
open("/usr/local/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=314232, ...}) = 0
close(3) = 0
open("/usr/local/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=314232, ...}) = 0
close(3) = 0
open("/usr/local/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=314232, ...}) = 0
close(3) = 0
open("/usr/local/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/opt/wavecon/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=314232, ...}) = 0
close(3) = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=21096, ...}) = 0
mprotect(0x401d5000, 4096, PROT_READ) = 0
mprotect(0x401e5000, 4096, PROT_READ) = 0
mprotect(0x401f9000, 4096, PROT_READ) = 0
mprotect(0x4024a000, 4096, PROT_READ) = 0
mprotect(0x4000c000, 4096, PROT_READ) = 0
mprotect(0x4000e000, 1699652, PROT_READ|PROT_EXEC) = 0
mprotect(0x401fb000, 291984, PROT_READ|PROT_EXEC) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid() = 583
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=2040*1024, rlim_max=RLIM_INFINITY}) = 0
rt_sigaction(SIGRTMIN, {0x401ccff8, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x401ccf28, [RTMIN], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x401cc56c, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
brk(0) = 0x13000
brk(0x14000) = 0x14000
rt_sigprocmask(SIG_BLOCK, [PIPE], NULL, 8) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---
+++ killed by SIGSEGV +++
Segmentation fault


Looks like fail after setrlimit :(
http://linux.die.net/man/2/setrlimit

Any idea?
HardRock
 
Posts: 5
Joined: 10 Oct 2012, 13:46

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron