[zeromq-dev] zeromq with protobuf segmentation fault while parsing in c++

Michael Haberler mail17 at mah.priv.at
Thu Jul 3 20:53:59 CEST 2014


Am 30.06.2014 um 04:00 schrieb Nayab Rasul <rasulnrasul at gmail.com>:

> 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
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev




More information about the zeromq-dev mailing list