[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