Skip to content

Instantly share code, notes, and snippets.

@nevyn
Last active December 28, 2015 20:49
Show Gist options
  • Save nevyn/7559961 to your computer and use it in GitHub Desktop.
Save nevyn/7559961 to your computer and use it in GitHub Desktop.
// Buttom of the stack. and it just keeps going like this until stack runs out of memory.
frame #11034: 0x00201c7b CoinPurse`std::__1::function<void (std::__1::error_code const&, std::__1::array<unsigned char, 16ul> const&)>::function<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >(std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&>, std::__1::enable_if<__callable<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >::value, void>::type*) [inlined] std::__1::__function::__func<std::__1::__bind<std::__1::function<void (this=0x0981a5a0, __f=0xbfffc738, __a=0xbfffc170)>&, std::__1::placeholders::__ph<1>&>, std::__1::allocator<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >, void (std::__1::error_code const&, std::__1::array<unsigned char, 16ul> const&)>::__func(std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&>&&, std::__1::allocator<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >&&) at functional:1007
frame #11035: 0x00201c7b CoinPurse`std::__1::function<void (std::__1::error_code const&, std::__1::array<unsigned char, 16ul> const&)>::function<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >(std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&>, std::__1::enable_if<__callable<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >::value, void>::type*) [inlined] std::__1::unique_ptr<std::__1::__function::__base<void (this=0xbfffc180, this=0x0981a5a0, __f=0xbfffc738, __a=0xbfffc170)>, std::__1::__allocator_destructor<std::__1::allocator<std::__1::__function::__func<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&>, std::__1::allocator<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >, void (std::__1::error_code const&, std::__1::array<unsigned char, 16ul> const&)> > > >::get() const at functional:1007
frame #11036: 0x00201c7b CoinPurse`std::__1::function<void (this=0xbfffc760, __f=0xbfffc738, =0x00000000)>::function<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >(std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&>, std::__1::enable_if<__callable<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >::value, void>::type*) + 1947 at functional:1285
frame #11037: 0x001ea64b CoinPurse`std::__1::function<void (this=0xbfffc760, __f=<unavailable>, =0x00000000)>::function<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >(std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&>, std::__1::enable_if<__callable<std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> >::value, void>::type*) + 43 at functional:1289
frame #11038: 0x001e5b9d CoinPurse`libbitcoin::handshake::start(this=0xbfffdb58, handle_start=<unavailable>)>) + 317 at handshake.cpp:41
frame #11039: 0x0018ed3a CoinPurse`libbitcoin::protocol::start(this=0xbfffdbd0, handle_complete=0xbfffce78)>) + 2362 at protocol.cpp:40
frame #11040: 0x002d849a CoinPurse`libbitcoin::session::start(this=0xbfffdd80, handle_complete=<unavailable>)>) + 122 at session.cpp:26
frame #11041: 0x0000555c CoinPurse`fullnode::start(this=0xbfffdae8) + 3596 at main.mm:228
frame #11042: 0x0000a0e8 CoinPurse`main + 7864 at main.mm:390
// Top of the stack.
* thread #1: tid = 0x8dd158, 0x000685bf CoinPurse`std::__1::function<void (this=0x098b0f68, __f=0x098b0ef8)>::function(std::__1::function<void (std::__1::error_code const&)> const&) + 31 at functional:1211, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=2, address=0xbf7ffffc)
frame #0: 0x000685bf CoinPurse`std::__1::function<void (this=0x098b0f68, __f=0x098b0ef8)>::function(std::__1::function<void (std::__1::error_code const&)> const&) + 31 at functional:1211
frame #1: 0x002aea0a CoinPurse`std::__1::__tuple_leaf<3ul, std::__1::function<void (this=0x098b0f68, __t=0x098b0ef8)>, false>::__tuple_leaf(std::__1::__tuple_leaf<3ul, std::__1::function<void (std::__1::error_code const&)>, false> const&) + 42 at tuple:319
frame #2: 0x001d3f14 CoinPurse`std::__1::__tuple_impl<std::__1::__tuple_indices<0ul, 1ul, 2ul, 3ul>, libbitcoin::protocol*, std::__1::placeholders::__ph<1>, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (this=0x098b0f58, =0x098b0ee8)> >::__tuple_impl(std::__1::__tuple_impl<std::__1::__tuple_indices<0ul, 1ul, 2ul, 3ul>, libbitcoin::protocol*, std::__1::placeholders::__ph<1>, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)> > const&) + 84 at tuple:443
frame #3: 0x001d3eb4 CoinPurse`std::__1::__tuple_impl<std::__1::__tuple_indices<0ul, 1ul, 2ul, 3ul>, libbitcoin::protocol*, std::__1::placeholders::__ph<1>, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (this=0x098b0f58, =0x098b0ee8)> >::__tuple_impl(std::__1::__tuple_impl<std::__1::__tuple_indices<0ul, 1ul, 2ul, 3ul>, libbitcoin::protocol*, std::__1::placeholders::__ph<1>, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)> > const&) + 36 at tuple:443
frame #4: 0x001d3e84 CoinPurse`std::__1::tuple<libbitcoin::protocol*, std::__1::placeholders::__ph<1>, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (this=0x098b0f58, =0x098b0ee8)> >::tuple(std::__1::tuple<libbitcoin::protocol*, std::__1::placeholders::__ph<1>, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)> > const&) + 36 at tuple:535
frame #5: 0x001d3e54 CoinPurse`std::__1::tuple<libbitcoin::protocol*, std::__1::placeholders::__ph<1>, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (this=0x098b0f58, =0x098b0ee8)> >::tuple(std::__1::tuple<libbitcoin::protocol*, std::__1::placeholders::__ph<1>, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)> > const&) + 36 at tuple:535
frame #6: 0x001d3e1a CoinPurse`std::__1::__bind<void (this=0x098b0f50, =0x098b0ee0)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&>::__bind(std::__1::__bind<void (libbitcoin::protocol::*)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&> const&) + 58 at functional:1694
frame #7: 0x001d3d94 CoinPurse`std::__1::__bind<void (this=0x098b0f50, =0x098b0ee0)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&>::__bind(std::__1::__bind<void (libbitcoin::protocol::*)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&> const&) + 36 at functional:1694
frame #8: 0x001d4f2e CoinPurse`boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, std::__1::__bind<void (this=0x098b0f48, =0x098b0ed8)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&> >::wrapped_handler(boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, std::__1::__bind<void (libbitcoin::protocol::*)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&> > const&) + 62 at wrapped_handler.hpp:29
frame #9: 0x001d4ee4 CoinPurse`boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, std::__1::__bind<void (this=0x098b0f48, =0x098b0ed8)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&> >::wrapped_handler(boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, std::__1::__bind<void (libbitcoin::protocol::*)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&> > const&) + 36 at wrapped_handler.hpp:29
frame #10: 0x001d31a6 CoinPurse`std::__1::__function::__func<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, std::__1::__bind<void (this=0x098b0ed0)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&> >, std::__1::allocator<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, std::__1::__bind<void (libbitcoin::protocol::*)(std::__1::error_code const&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >, std::__1::function<void (std::__1::error_code const&)>), libbitcoin::protocol*, std::__1::placeholders::__ph<1>&, std::__1::shared_ptr<std::__1::atomic<unsigned long> >&, std::__1::function<void (std::__1::error_code const&)>&> > >, void (std::__1::error_code const&)>::__clone() const + 1862 at functional:1027
frame #11: 0x0006864c CoinPurse`std::__1::function<void (this=0xbf800cc8, __f=0xbf8012b8)>::function(std::__1::function<void (std::__1::error_code const&)> const&) + 124 at functional:1210
frame #12: 0x000685c4 CoinPurse`std::__1::function<void (this=0xbf800cc8, __f=0xbf8012b8)>::function(std::__1::function<void (std::__1::error_code const&)> const&) + 36 at functional:1211
frame #13: 0x002034c6 CoinPurse`std::__1::__bind<std::__1::function<void (this=0xbf800cc0, =0xbf8012b0)>&, std::__1::placeholders::__ph<1>&>::__bind(std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> const&) + 54 at functional:1694
frame #14: 0x00203484 CoinPurse`std::__1::__bind<std::__1::function<void (this=0xbf800cc0, =0xbf8012b0)>&, std::__1::placeholders::__ph<1>&>::__bind(std::__1::__bind<std::__1::function<void (std::__1::error_code const&)>&, std::__1::placeholders::__ph<1>&> const&) + 36 at functional:1694
void handshake::start(start_handler handle_start)
{
discover_external_ip(std::bind(handle_start, _1)); // this std::bind code goes off into lala land
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment