On Tue, Feb 25, 2014 at 01:18:57PM +0000, Richard W.M. Jones wrote:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 __GI_strspn (s=s@entry=0x0, accept=accept@entry=0xb6d0576c ";")
at strspn.c:33
33 for (p = s; *p != '\0'; ++p)
(gdb) t a a bt
Thread 1 (Thread 0xb6f82000 (LWP 2133)):
#0 __GI_strspn (s=s@entry=0x0, accept=accept@entry=0xb6d0576c ";")
at strspn.c:33
#1 0xb442e804 in strtok (s=0x0, delim=0xb6d0576c ";") at strtok.c:45
#2 0xb65dd4e0 in zorba::append_env_var (env_var_name=<optimized out>,
pathsVector=std::vector of length 3, capacity 4 = {...})
at
/home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/context/root_static_context.cpp:102
Yeah, I debugged this last night, the problem is zorba isn't checking
the return value of getenv, and as a result, passing a NULL ptr to
strtok. Oddly, the optimized assembler versions in glibc for x86_64
happily just return NULL, whereas on ARM and other platforms, they
dereference NULL and take a SIGSEGV.
Bringing this up with the glibc developers and scratch-building zorba:
http://koji.fedoraproject.org/koji/taskinfo?taskID=6569756
--Kyle
#3 0xb65de118 in zorba::root_static_context::init
(this=this@entry=0xa8460)
at
/home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/context/root_static_context.cpp:268
#4 0xb659f31c in zorba::GlobalEnvironment::init (
store=0xb6f61728 <zorba::StoreManager::getStore()::store>)
at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/system/globalenv.cpp:85
#5 0xb62eb2b0 in zorba::ZorbaImpl::init (
this=0xb6f5d85c <zorba::Zorba::getInstance(void*)::lInstance>,
store=0xb6f61728 <zorba::StoreManager::getStore()::store>)
at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/api/zorbaimpl.cpp:103
#6 0xb62eaf04 in zorba::Zorba::getInstance (
store=0xb6f61728 <zorba::StoreManager::getStore()::store>,
store@entry=0x10001 <compileAndExecute(zorba::Zorba*, ZorbaCMDProperties
const&, zorba::SmartPtr<zorba::StaticContext>&, std::string const&,
std::istream&, std::ostream&, TimingInfo&)+2092>)
at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/src/api/zorba.cpp:32
#7 0x0000beb0 in main (argc=<optimized out>, argv=<optimized out>)
at /home/rjones/d/fedora/zorba/master/zorba-2.9.1/bin/zorbacmd.cpp:1034
HTH.
----------------------------------------------------------------------
By the way [small advert follows!] Cubietrucks are reasonably powerful
ARM systems that you can buy worldwide for around US$99. They run
Hans de Goede's Fedora Allwinner Remix straight out of the box. You
will also need to buy a CP2102 serial cable (cost around $10), a
microSDHD card, and optionally a 2.5" SATA drive. If you want a
reasonably cheap way to debug these kinds of problems locally, this is
the way to go.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
_______________________________________________
arm mailing list
arm(a)lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/arm