(gdb) bt
#0 0x00007ffff4cc3fea in __find_specmb (format=0x7ffff4601140 ").") at printf-parse.h:108
#1 __parse_one_specmb (format=format@entry=0x7ffff460113e "%d).", posn=posn@entry=0, spec=spec@entry=0x7fffd498d130, max_ref_arg=max_ref_arg@entry=0x7fffd498d100) at printf-parsemb.c:403
#2 0x00007ffff4c9ffa9 in printf_positional (s=s@entry=0x7fffd498df50, format=format@entry=0x7ffff4601110 "Error in XmlRpcDispatch::work: error in poll (%d).", readonly_format=readonly_format@entry=0, ap=ap@entry=0x7fffd498e0d8,
ap_savep=ap_savep@entry=0x7fffd498daf8, done=done@entry=46, nspecs_done=0, lead_str_end=0x7ffff460113e "%d).", work_buffer=0x7fffd498db20 "\340\345\230\324\377\177", save_errno=22, grouping=0x0, thousands_sep=0x7ffff4dfac79 "")
at vfprintf.c:1771
#3 0x00007ffff4ca3cba in _IO_vfprintf_internal (s=s@entry=0x7fffd498df50, format=format@entry=0x7ffff4601110 "Error in XmlRpcDispatch::work: error in poll (%d).", ap=ap@entry=0x7fffd498e0d8) at vfprintf.c:1688
#4 0x00007ffff4d79169 in ___vsnprintf_chk (s=0x7fffd498e0f0 "Error in XmlRpcDispatch::work: error in poll (cDispatch::work: error in poll (-1).", maxlen=<optimized out>, flags=1, slen=<optimized out>,
format=0x7ffff4601110 "Error in XmlRpcDispatch::work: error in poll (%d).", args=0x7fffd498e0d8) at vsnprintf_chk.c:63
#5 0x00007ffff45fb015 in XmlRpc::XmlRpcUtil::error(char const*, ...) () from /opt/ros/melodic/lib/libxmlrpcpp.so
#6 0x00007ffff45f5124 in XmlRpc::XmlRpcDispatch::work(double) () from /opt/ros/melodic/lib/libxmlrpcpp.so
#7 0x00007ffff76942b8 in ros::XMLRPCManager::serverThreadFunc() () from /opt/ros/melodic/lib/libroscpp.so
#8 0x00007ffff3da4bcd in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
#9 0x00007ffff6f846db in start_thread (arg=0x7fffd518c700) at pthread_create.c:463
#10 0x00007ffff4d6888f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
实在找不到哪儿错了,每次core的地方都惊人一致,也不像的越界的问题。
最后从其他的机器上拷贝了个libxmlrpcpp.so 替换,似乎没有再出现问题了,先这样吧,估计是ros自己的bug