[zeromq-dev] Seg fault in

Martin Townsend martin.townsend at xsilon.com
Fri Jun 13 17:46:13 CEST 2014


I've cross compiled the 4.0.4 sources of zeromq for Microblaze using 
both --with-poller=select and leaving the default setting (which is 
epoll) and in both libraries I get a seg fault when tyring to bind to an 
IPC socket.  The linux version is 3.14.
Here is the code I'm trying to run:
   context = zmq_ctx_new ();
   publisher = zmq_socket (context, ZMQ_PUB);
   rc = zmq_bind (publisher, "ipc://xpwrd.ipc");
   assert (rc == 0);

Here's the stack for the select version
Thread [3] (Suspended: Signal 'SIGSEGV' received. Description: 
Segmentation fault.)
     6 <symbol is not available> 0x90078eb0
     5 zmq::select_t::loop() select.cpp:197 0x48053a58
     4 zmq::select_t::worker_routine() select.cpp:211 0x48053bc0
     3 thread_routine() thread.cpp:81 0x480660cc
     2 start_thread() pthread_create.c:314 0x48095180
     1 clone() clone.S:65 0x483784ec

The offending line is
void zmq::select_t::loop ()
             if (FD_ISSET (fds [i].fd, &readfds))
                 fds [i].events->in_event ();
I've tried stepping and it looks like in_event is not a function and it 
jumps to an out of range address.

Any help is greatly appreciated.


More information about the zeromq-dev mailing list