I'm running groovy on a pandaboard(ubuntu12.04). I running following program, but this program was core dumped.
#include "tf/transform_broadcaster.h" #include "tf/transform_listener.h" int main(int argc, char **argv){ ros::init(argc, argv, "tf"); tf::TransformBroadcaster br; tf::TransformListener listener; while(1){ tf::Transform transform; transform.setOrigin( tf::Vector3(0, 0, 0) ); transform.setRotation(tf::Quaternion(tf::Vector3(0, 0, 0), 1)); br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), "test", "test2")); geometry_msgs::PoseStamped map_pos; geometry_msgs::PoseStamped test2_pos; if(listener.waitForTransform("/test", ros::Time::now(), "test2", ros::Time::now(), "/test", ros::Duration(1.0))){ try{ listener.transformPose("test2", map_pos, test2_pos); }catch (tf::TransformException &ex) { } } } }
I got following dmsgs.
[ 1259.359893] Alignment trap: not handling instruction ed977b00 at [] [ 1259.359924] Unhandled fault: alignment exception (0x011) at 0x00e24c07
And I used gdb and got the following backtrace.
#0 0x4004f294 in void ros::serialization::VectorSerializer >, std::allocator > >, void>::read(ros::serialization::IStream&, std::vector >, std::allocator > > >&) () from /opt/ros/groovy/lib/libtf.so #1 0x4004f592 in ros::SubscriptionCallbackHelperT > const> const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&) () from /opt/ros/groovy/lib/libtf.so #2 0x4017535e in ros::MessageDeserializer::deserialize() () from /opt/ros/groovy/lib/libroscpp.so #3 0x4016f376 in ros::SubscriptionQueue::call() () from /opt/ros/groovy/lib/libroscpp.so #4 0x40139070 in ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) () from /opt/ros/groovy/lib/libroscpp.so #5 0x4013a00e in ros::CallbackQueue::callAvailable(ros::WallDuration) () from /opt/ros/groovy/lib/libroscpp.so #6 0x4004b8f8 in tf::TransformListener::dedicatedListenerThread() () from /opt/ros/groovy/lib/libtf.so #7 0x4004b654 in boost::detail::thread_data, boost::_bi::list1 > > >::run() () from /opt/ros/groovy/lib/libtf.so #8 0x403c6602 in thread_proxy () from /usr/lib/libboost_thread.so.1.46.1 #9 0x40099ed2 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0 #10 0x4035df18 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6 #11 0x4035df18 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
I tried commanding "aptitude upgrade" the day after yesterday, but still core dumped.
Any idea if this is a bug in my code or a bug in the ROS code? Or What can I do to debug this more and solve a problem?
Originally posted by Hiroaki on ROS Answers with karma: 1 on 2013-08-04
Post score: 0
Original comments
Comment by ahendrix on 2013-08-05:
Which arm architecture; armel or armhf? Which version of roscpp_serialization do you have?
Comment by Hiroaki on 2013-08-05:
I use armhf. Version of ros_serialization is 0.3.14.
Today I tried following commands and updated version of ros_serialization to 0.3.16.
roscd cd src git clone https://github.com/ros/roscpp_core cd ../ rospack profile catkin_make
After this, shared library dependencies turned into following.
$ ldd libtf.so | grep serial
libroscpp_serialization.so => /home/pandaboard/catkin_ws/devel/lib/libroscpp_serialization.so (0x40112000)
$ ldd libroscpp.so | grep serial
libroscpp_serialization.so => /home/pandaboard/catkin_ws/devel/lib/libroscpp_serialization.so (0x40072000)
$ ldd lib/tf_test/tf_test_node | grep serial
libroscpp_serialization.so => /home/pandaboard/catkin_ws/devel/lib/libroscpp_serialization.so (0x400b1000)
But the program still core dumped.