0

我正在使用thrift TSimpleServer,并获得核心转储:

` (gdb) bt

#0  0x000000302af2e2ed in raise () from /lib64/tls/libc.so.6
#1  0x000000302af2fa3e in abort () from /lib64/tls/libc.so.6
#2  0x000000302af62db1 in __libc_message () from /lib64/tls/libc.so.6
#3  0x000000302af6888e in _int_free () from /lib64/tls/libc.so.6
#4  0x000000302af68bd6 in free () from /lib64/tls/libc.so.6
#5  0x000000302d3ae19e in operator delete(void*) () from /usr/lib64/libstdc++.so.6
#6  0x0000000000443d8a in checked_array_delete<uint8_t> (this=0xb551f0, __in_chrg=<value optimized out>) at /home/work/compile_meta/inf/budw/meta.bak/lib/thrift-0.8.0/../../../../../third-64/boost/include/boost/checked_delete.hpp:41
#7  0x0000000000443d8a in ~scoped_array (this=0xb551f0, __in_chrg=<value optimized out>)
#8  0x0000000000443d8a in     apache::thrift::transport::TBufferedTransport::~TBufferedTransport (this=0xb551f0, __in_chrg=<value optimized out>)
#9  0x000000000042077d in ~shared_count (this=0xb56760, __in_chrg=<value optimized out>) at ../../../../third-64/boost/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:145
#10 0x000000000042077d in ~shared_ptr (this=0xb56760, __in_chrg=<value optimized out>)
#11 0x000000000042077d in ~TProtocol (this=0xb56760, __in_chrg=<value optimized out>)
#12 0x000000000042077d in ~TProtocolDefaults (this=0xb56760, __in_chrg=<value optimized out>)
#13 0x000000000042077d in ~TVirtualProtocol (this=0xb56760, __in_chrg=<value optimized out>)
#14 0x000000000042077d in apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::~TBinaryProtocolT (this=0xb56760, __in_chrg=<value optimized out>)
#15 0x0000000000445ab9 in operator= (this=0xa259e0) at /home/work/compile_meta/inf/budw/meta.bak/lib/thrift-0.8.0/../../../../../third-64/boost/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:145
#16 0x0000000000445ab9 in apache::thrift::server::TSimpleServer::serve (this=0xa259e0)
#17 0x000000000041ac94 in uap::meta::MetaServiceManager::thread_func (arg=0x2cfd) at server/meta_service_manager.cpp:177
#18 0x000000302b80610a in start_thread () from /lib64/tls/libpthread.so.0
#19 0x000000302afc6003 in clone () from /lib64/tls/libc.so.6
#20 0x0000000000000000 in ?? ()`

我通过 thrift 如此远程地附加,在附加 a1.so a2.so 之后,然后分离 a1.so a2.so ,当分离更多不存在的 a1.so 时,它核心转储,但是当我们附加 a1.so 分离a1.so 分离 a1.so ,效果很好

关于这个问题的任何线索,或者我如何调试,因为我已经将 try-catch 添加到这个 serv func,但没有抛出异常,谢谢

4

0 回答 0