Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@veox
Created June 27, 2014 15:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save veox/5d02be8b83780f6513e4 to your computer and use it in GitHub Desktop.
Save veox/5d02be8b83780f6513e4 to your computer and use it in GitHub Desktop.
GDB backtrace: Darkwallet crashes Obelisk
#0 0x00007ffff58fa475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1 0x00007ffff58fd6f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2 0x00007ffff58f3621 in __assert_fail ()
from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#3 0x000000000041af6a in boost::dynamic_bitset<unsigned char, std::allocator<unsigned char> >::~dynamic_bitset (this=0x7fffea9d2790,
__in_chrg=<optimized out>)
at /usr/include/boost/dynamic_bitset/dynamic_bitset.hpp:616
No locals.
#4 0x000000000042d6f0 in obelisk::subscribe_manager::add_subscription(obelisk::incoming_message const&, std::function<void (obelisk::outgoing_message const&)>) (this=this@entry=0x7fffffffd420, request=..., queue_send=...)
at worker/subscribe_manager.cpp:83
addr_key = {static bits_per_block = 8 '\b',
static npos = <optimized out>,
static ulong_width = <optimized out>,
m_bits = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>},
_M_start = 0x6d2d90 "b\223\316G\034\357Eu\004W\230\347®",
_M_finish = 0x6d2d9e "",
_M_end_of_storage = 0x6d2d9e ""}}, <No data fields>},
m_num_bits = 111}
now = {<boost::date_time::base_time<boost::posix_time::ptime, boost::date_time::counted_time_system<boost::date_time::counted_time_rep<boost::posix_time::millisec_posix_time_system_config> > >> = {<boost::less_than_comparable<boost::posix_time::ptime, boost::equality_comparable<boost::posix_time::ptime, boost::posix_time::ptime, boost::detail::empty_base<boost::posix_time::ptime>, boost::detail::false_t>, boost::detail::empty_base<boost::posix_time::ptime>, boost::detail::true_t>> = {<boost::less_than_comparable1<boost::posix_time::ptime, boost::equality_comparable<boost::posix_time::ptime, boost::posix_time::ptime, boost::detail::empty_base<boost::posix_time::ptime>, boost::detail::false_t> >> = {<boost::equality_comparable<boost::posix_time::ptime, boost::posix_time::ptime, boost::detail::empty_base<boost::posix_time::ptime>, boost::detail::false_t>> = {<boost::equality_comparable1<boost::posix_time::ptime, boost::detail::empty_base<boost::posix_time::ptime> >> = {<boost::detail::empty_base<boost::posix_time::ptime>> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, time_ = {time_count_ = {
value_ = 8870000}}}, <No data fields>}
expire_time = <optimized out>
#5 0x000000000042d8b1 in obelisk::subscribe_manager::do_subscribe(obelisk::incoming_message const&, std::function<void (obelisk::outgoing_message const&)>)
(this=0x7fffffffd420, request=..., queue_send=...)
at worker/subscribe_manager.cpp:88
ec = {_M_value = 24, _M_cat = 0x0}
result = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>},
_M_start = 0x18 <Address 0x18 out of bounds>,
_M_finish = 0x7fffea9d2a60 "\020+\235\352\377\177",
_M_end_of_storage = 0x7fffea9d2a30 "\001"}}, <No data fields>}
serial = {iter_ = {_M_current = 0x20 <Address 0x20 out of bounds>}}
response = {
dest_ = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>},
_M_start = 0x1 <Address 0x1 out of bounds>,
_M_finish = 0x7ffff5943c00 "H\205\300H\211\303\017\204\244",
_M_end_of_storage = 0x1 <Address 0x1 out of bounds>}}, <No data fields>}, command_ = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x18 <Address 0x18 out of bounds>}}, id_ = 6756128,
data_ = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>},
_M_start = 0x666b40 "0\342\270\367\377\177",
_M_finish = 0x7fffea9d2c70 "\300.g",
_M_end_of_storage = 0x7ffff614f07d "H\205\300u&H\213-/\272("}}, <No data fields>}}
#6 0x000000000041ad92 in std::_Mem_fn<void (obelisk::subscribe_manager::*)(obelisk::incoming_message const&, std::function<void (obelisk::outgoing_message const&)>)>::operator()(obelisk::subscribe_manager*, obelisk::incoming_message const&, std::function<void (obelisk::outgoing_message const&)>) const (
this=this@entry=0x7fffea9d2b10, __object=<optimized out>, __args#0=...,
__args#1=...) at /usr/include/c++/4.7/functional:554
No locals.
#7 0x000000000042fa37 in std::_Bind<std::_Mem_fn<void (obelisk::subscribe_manager::*)(obelisk::incoming_message const&, std::function<void (obelisk::outgoing_message const&)>)> (obelisk::subscribe_manager*, obelisk::incoming_message, std::function<void (obelisk::outgoing_message const&)>)>::__call<void, , 0ul, 1ul, 2ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (
this=this@entry=0x7fffea9d2b10, __args=...)
at /usr/include/c++/4.7/functional:1156
No locals.
#8 0x000000000042d219 in operator()<, void> (this=0x7fffea9d2b10)
at /usr/include/c++/4.7/functional:1215
No locals.
#9 asio_handler_invoke<std::_Bind<std::_Mem_fn<void (obelisk::subscribe_manager::*)(const obelisk::incoming_message&, std::function<void(const obelisk::outgoing_message&)>)>(obelisk::subscribe_manager*, obelisk::incoming_message, std::function<void(const obelisk::outgoing_message&)>)> > (
function=<error reading variable: access outside bounds of object referenced via synthetic pointer>)
at /usr/include/boost/asio/handler_invoke_hook.hpp:64
No locals.
#10 boost_asio_handler_invoke_helpers::invoke<std::_Bind<std::_Mem_fn<void (obelisk::subscribe_manager::*)(const obelisk::incoming_message&, std::function<void(const obelisk::outgoing_message&)>)>(obelisk::subscribe_manager*, obelisk::incoming_message, std::function<void(const obelisk::outgoing_message&)>)>, std::_Bind<std::_Mem_fn<void (obelisk::subscribe_manager::*)(const obelisk::incoming_message&, std::function<void(const obelisk::outgoing_message&)>)>(obelisk::subscribe_manager*, obelisk::incoming_message, std::function<void(const obelisk::outgoing_message&)>)> >(std::_Bind<std::_Mem_fn<void (obelisk::subscribe_manager::*)(const obelisk::incoming_message&, std::function<void(const obelisk::outgoing_message&)>)>(obelisk::subscribe_manager*, obelisk::incoming_message, std::function<void(const obelisk::outgoing_message&)>)> &, std::_Bind<std::_Mem_fn<void (obelisk::subscribe_manager::*)(const obelisk::incoming_message&, std::function<void(const obelisk::outgoing_message&)>)>(obelisk::subscribe_manager*, obelisk::incoming_message, std::function<void(const obelisk::outgoing_message&)>)> &) (function=...,
context=<error reading variable: Unhandled dwarf expression opcode 0xfa>)
at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:39
No locals.
#11 0x000000000042fb1b in boost::asio::detail::completion_handler<std::_Bind<std::_Mem_fn<void (obelisk::subscribe_manager::*)(obelisk::incoming_message const&, std::function<void (obelisk::outgoing_message const&)>)> (obelisk::subscribe_manager*, obelisk::incoming_message, std::function<void (obelisk::outgoing_message const&)>)> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (owner=0x666b40, base=0x7fffe405d590)
at /usr/include/boost/asio/detail/completion_handler.hpp:67
h = 0x7fffe405d590
p = {h = 0x7fffea9d2bc0, v = 0x0, p = 0x0}
handler = {<std::_Weak_result_type<std::_Mem_fn<void (obelisk::subscribe_manager::*)(const obelisk::incoming_message&, std::function<void(const obelisk::outgoing_message&)>)> >> = {<std::_Weak_result_type_impl<std::_Mem_fn<void (obelisk::subscribe_manager::*)(const obelisk::incoming_message&, std::function<void(const obelisk::outgoing_message&)>)> >> = {<std::_Maybe_get_result_type<true, std::_Mem_fn<void (obelisk::subscribe_manager::*)(const obelisk::incoming_message&, std::function<void(const obelisk::outgoing_message&)>)> >> = {<No data fields>}, <No data fields>}, <No data fields>},
_M_f = {<std::_Maybe_unary_or_binary_function<void, obelisk::subscribe_manager*, const obelisk::incoming_message&, std::function<void(const obelisk::outgoing_message&)> >> = {<No data fields>}, __pmf = (
void (obelisk::subscribe_manager::*)(obelisk::subscribe_manager * const,
const obelisk::incoming_message &,
std::function<void(const obelisk::outgoing_message&)>)) 0x42d880 <obelisk::subscribe_manager::do_subscribe(obelisk::incoming_message const&, std::function<void (obelisk::outgoing_message const&)>)>},
_M_bound_args = {<std::_Tuple_impl<0ul, obelisk::subscribe_manager*, obelisk::incoming_message, std::function<void(const obelisk::outgoing_message&)> >> = {<std::_Tuple_impl<1ul, obelisk::incoming_message, std::function<void(const obelisk::outgoing_message&)> >> = {<std::_Tuple_impl<2ul, std::function<void(const obelisk::outgoing_message&)> >> = {<std::_Tuple_impl<3ul>> = {<No data fields>}, <std::_Head_base<2ul, std::function<void(const obelisk::outgoing_message&)>, false>> = {
_M_head_impl = {<std::_Maybe_unary_or_binary_function<void, obelisk::outgoing_message const&>> = {<std::unary_function<obelisk::outgoing_message const&, void>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {
_M_unused = {_M_object = 0x7fffe401a8c0,
_M_const_object = 0x7fffe401a8c0,
_M_function_pointer = 0x7fffe401a8c0,
_M_member_pointer = (
void (std::_Undefined_class::*)(
std::_Undefined_class * const)) 0x7fffe401a8c0, this adjustment 140737327090632},
_M_pod_data = "\300\250\001\344\377\177\000\000\310Kc\366\377\177\000"}, _M_manager = 0x431c90
<std::_Function_base::_Base_manager<std::_Bind<std::_Mem_fn<void (obelisk::send_worker::*)(obelisk::outgoing_message const&)> (obelisk::send_worker*, std::_Placeholder<1>)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>},
_M_invoker = 0x431d20 <std::_Function_handler<void (obelisk::outgoing_message const&), std::_Bind<std::_Mem_fn<void (obelisk::send_worker::*)(obelisk::outgoing_message const&)> (obelisk::send_worker*, std::_Placeholder<1>)> >::_M_invoke(std::_Any_data const&, obelisk::outgoing_message const&)>}}, <No data fields>}, <std::_Head_base<1ul, obelisk::incoming_message, false>> = {_M_head_impl = {
origin_ = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>},
_M_start = 0x7fffe40703f0 "",
_M_finish = 0x7fffe40703f5 "\177",
_M_end_of_storage = 0x7fffe40703f5 "\177"}}, <No data fields>}, command_ = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x7fffe409ff68 "address.subscribe"}},
id_ = 1241168125,
data_ = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
_M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>},
_M_start = 0x7fffe4077030 "ob\223\316G\034\357Eu\004W\230\347®\260\361\345\370\347p", _M_finish = 0x7fffe4077045 "",
_M_end_of_storage = 0x7fffe4077045 ""}}, <No data fields>}}}, <No data fields>}, <std::_Head_base<0ul, obelisk::subscribe_manager*, false>> = {
_M_head_impl = 0x7fffffffd420}, <No data fields>}, <No data fields>}}
#12 0x00007ffff787058d in complete (bytes_transferred=0, ec=..., owner=...,
this=<optimized out>)
at /usr/include/boost/asio/detail/task_io_service_operation.hpp:37
No locals.
#13 boost::asio::detail::strand_service::do_complete (owner=0x666b40,
base=0x672ec0, ec=...)
at /usr/include/boost/asio/detail/impl/strand_service.ipp:160
o = 0x0
impl = 0x672ec0
ctx = {<boost::noncopyable_::noncopyable> = {<No data fields>},
key_ = 0x672ec0, value_ = 0x7fffea9d2c70 "\300.g", next_ = 0x0}
on_exit = {owner_ = 0x666b40, impl_ = 0x672ec0}
#14 0x00007ffff78b995e in complete (bytes_transferred=0, ec=..., owner=...,
this=0x672ec0)
at /usr/include/boost/asio/detail/task_io_service_operation.hpp:37
No locals.
#15 boost::asio::detail::task_io_service::do_run_one (
this=this@entry=0x666b40, lock=..., this_thread=...,
private_op_queue=..., ec=...)
at /usr/include/boost/asio/detail/impl/task_io_service.ipp:369
task_result = 0
on_exit = {task_io_service_ = 0x666b40, lock_ = 0x7fffea9d2d90,
ops_ = 0x7fffea9d2d80}
more_handlers = true
#16 0x00007ffff78baeb6 in boost::asio::detail::task_io_service::run (
this=0x666b40, ec=...)
at /usr/include/boost/asio/detail/impl/task_io_service.ipp:146
this_thread = {wakeup_event = 0x7fffea9d2de0, private_op_queue = 0x0,
next = 0x0}
wakeup_event = {<boost::noncopyable_::noncopyable> = {<No data fields>}, cond_ = {__data = {__lock = 0, __futex = 2, __total_seq = 1,
__wakeup_seq = 1, __woken_seq = 1, __mutex = 0x666b70,
__nwaiters = 0, __broadcast_seq = 0},
__size = "\000\000\000\000\002\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000pkf", '\000' <repeats 12 times>, __align = 8589934592}, signalled_ = true}
ctx = {<boost::noncopyable_::noncopyable> = {<No data fields>},
key_ = 0x666b40, value_ = 0x7fffea9d2da0, next_ = 0x0}
private_op_queue = {<boost::noncopyable_::noncopyable> = {<No data fields>}, front_ = 0x0, back_ = 0x0}
lock = {<boost::noncopyable_::noncopyable> = {<No data fields>},
mutex_ = @0x666b70, locked_ = false}
n = 73
#17 0x00007ffff78f0876 in run (this=<optimized out>)
at /usr/include/boost/asio/impl/io_service.ipp:59
ec = {m_val = 0, m_cat = 0x7ffff7fccb78}
#18 operator() (__closure=<optimized out>) at threadpool.cpp:49
this = <optimized out>
#19 _M_invoke<> (this=<optimized out>) at /usr/include/c++/4.7/functional:1598
No locals.
#20 operator() (this=<optimized out>) at /usr/include/c++/4.7/functional:1586
No locals.
#21 std::thread::_Impl<std::_Bind_simple<libbitcoin::threadpool::spawn_once()::<lambda()>()> >::_M_run(void) (this=<optimized out>)
at /usr/include/c++/4.7/thread:115
No locals.
#22 0x00007ffff61a1400 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#23 0x00007ffff75dfb50 in start_thread ()
from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#24 0x00007ffff59a40ed in clone () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#25 0x0000000000000000 in ?? ()
No symbol table info available.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment