Am 30.06.2014 um 04:00 schrieb Nayab Rasul <[email protected]>:

> Hi,
> 
> I am using zeromq with protobuf to send/recieve messages but code was 
> crashing on receiver end with Segmentation fault (core dumped) error while 
> parsing the received data.
> 
> Scan is my message, and it has float repeated fields.
> 
> sender.cpp
> 
> Scan proto_ls_msg;
> proto_ls_msg.set_angle_min(0.0);
> proto_ls_msg.set_angle_max(180.5);
> std::string ls_msg_str;
> proto_ls_msg.SerializeToString(&ls_msg_str);
> zmq::message_t request (ls_msg_str.size());
> memcpy (request.data(), ls_msg_str.c_str(),ls_msg_str.size());
> socket.send (request);
> 
> collector.cpp
> 
> zmq::message_t recieved;
> socket.recv (&recieved);
> std::string ls_msg_str((char*)recieved.data(),recieved.size()); 
> Scan *pb_laser_msg_rcv;
> pb_laser_msg_rcv->ParseFromString(ls_msg_str); // <--  Segmentation fault here

no wonder, because you dont allocate the Scan message, just a pointer to it - 
where's the memory for the message supposed to come from? this has nothing to 
do with zeroMQ, this is basic C/C++

try

Scan rx;
rx.ParseFromString(<buffer>)

as per protobuf tutorial


> 
> 
> Is there any example code with zeromq and protobuf using repeated float 
> fields.
> 
> 
> thanks.
> _______________________________________________
> zeromq-dev mailing list
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to