Illegal instruction in serialize on Gumstix
I am running Fuerte on a Ubuntu Lucid installed on a Gumstix Overo. I get an illegal instruction in serialization code:
Program received signal SIGILL, Illegal instruction.
[Switching to Thread 0x445c4420 (LWP 2640)]
0x001313b8 in ros::serialization::Serializer<double>::read<ros::serialization::IStream> (stream=..., v=@0x1965f0)
at /opt/ros/fuerte/include/ros/serialization.h:201
201 ROS_CREATE_SIMPLE_SERIALIZER(double);
The backtrace is:
(gdb) bt
#0 0x001313b8 in ros::serialization::Serializer<double>::read<ros::serialization::IStream> (stream=..., v=@0x1965f0)
at /opt/ros/fuerte/include/ros/serialization.h:201
#1 0x001312c6 in ros::serialization::deserialize<double, ros::serialization::IStream> (stream=..., t=@0x1965f0)
at /opt/ros/fuerte/include/ros/serialization.h:161
#2 0x00131192 in next<double> (stream=..., m=...)
at /opt/ros/fuerte/include/ros/serialization.h:716
#3 ros::serialization::Serializer<lrs_srvs::LQFlyqAddFlyto3dMRequest_<std::allocator<void> > >::allInOne<ros::serialization::IStream, lrs_srvs::LQFlyqAddFlyto3dMRequest_<std::allocator<void> >&> (stream=..., m=...)
at /home/witas/svnwitas/ros/lrs/lrs_srvs/srv_gen/cpp/include/lrs_srvs/LQFlyqAddFlyto3dM.h:268
#4 0x0012f82a in ros::serialization::Serializer<lrs_srvs::LQFlyqAddFlyto3dMRequest_<std::allocator<void> > >::read<ros::serialization::IStream, lrs_srvs::LQFlyqAddFlyto3dMRequest_<std::allocator<void> > > (stream=..., t=...)
at /home/witas/svnwitas/ros/lrs/lrs_srvs/srv_gen/cpp/include/lrs_srvs/LQFlyqAddFlyto3dM.h:278
#5 0x0012deda in ros::serialization::deserialize<lrs_srvs::LQFlyqAddFlyto3dMRequest_<std::allocator<void> >, ros::serialization::IStream> (stream=...,
t=...) at /opt/ros/fuerte/include/ros/serialization.h:161
#6 0x0012b882 in ros::serialization::deserializeMessage<lrs_srvs::LQFlyqAddFlyto3dMRequest_<std::allocator<void> > > (m=..., message=...)
at /opt/ros/fuerte/include/ros/serialization.h:857
#7 0x001238e6 in ros::ServiceCallbackHelperT<ros::ServiceSpec<lrs_srvs::LQFlyqAddFlyto3dMRequest_<std::allocator<void> >, lrs_srvs::LQFlyqAddFlyto3dMResponse_<std::allocator<void> > > >::call (this=0x19af40, params=...)
at /opt/ros/fuerte/include/ros/service_callback_helper.h:194
#8 0x4019b850 in ros::ServiceCallback::call() ()
from /opt/ros/fuerte/lib/libroscpp.so
#9 0x401e424c in ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) ()
from /opt/ros/fuerte/lib/libroscpp.so
#10 0x401e3da6 in ros::CallbackQueue::callAvailable(ros::WallDuration) ()
from /opt/ros/fuerte/lib/libroscpp.so
#11 0x4024602c in ros::SingleThreadedSpinner::spin(ros::CallbackQueue*) ()
from /opt/ros/fuerte/lib/libroscpp.so
#12 0x402271be in ros::spin(ros::Spinner&) ()
from /opt/ros/fuerte/lib/libroscpp.so
#13 0x40227176 in ros::spin() () from /opt/ros/fuerte/lib/libroscpp.so
#14 0x000da9e0 in spin_thread ()
at /home/witas/svnwitas/ros/lrs/lrs_quadsim/src/quadconnect.cc:81
#15 0x0011f4a0 in boost::detail::thread_data<void (*)()>::run (this=0x1a24f8)
at /usr/include/boost/thread/detail/thread.hpp:56
#16 0x4040d792 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#17 0x4040d792 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Any idea if this is a bug in my code or a bug in the ROS code? Is this any known issue with a work around?
Or what can I do to debug this more and solve the problem?
Did you install from source or debian packages?
I compiled from source. Are there Ubuntu or Debian packages for Gumstix or for Arm?