std::string foo; ... ROS_INFO("Foo: %s",foo); $ bin/my_node Illegal instruction This throws an illegal instruction during execution. ROS_INFO("Foo: %s",foo.c_str()); Obviously works correctly. Is it possible to get this to produce a better error message?