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
