<div dir="ltr">I believe it was still crashing either way.  But I'll double check as soon as I get home.<div><br></div><div>That was one of my "sanity checks" to see if it would still crash.  And it did.  With no parameters, it should still create an instance of PopularityManager and the manager object for the shared pointer regardless right?  It still crashes.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 13, 2017 at 12:25 PM, Ashlesh Gawande (agawande) <span dir="ltr"><<a href="mailto:agawande@memphis.edu" target="_blank">agawande@memphis.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>

<div id="m_-874456096636033735divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr">
<p>I think you forgot to pass in the pm object in the make_shared:</p>
<p><a href="https://github.com/profjpbaugh/ndnSIM-strategy1/blob/d86e3ce05696cd3fa914ab5e30c433d32623d8db/extensions/PStrat.cpp#L56" class="m_-874456096636033735OWAAutoLink" id="m_-874456096636033735LPlnk587986" target="_blank">https://github.com/<wbr>profjpbaugh/ndnSIM-strategy1/<wbr>blob/<wbr>d86e3ce05696cd3fa914ab5e30c433<wbr>d32623d8db/extensions/PStrat.<wbr>cpp#L56</a><br>
<br>
</p>
<p>Ashlesh</p>
</div>
<hr style="display:inline-block;width:98%">
<div id="m_-874456096636033735divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> John Baugh <<a href="mailto:jpbaugh@umich.edu" target="_blank">jpbaugh@umich.edu</a>><br>
<b>Sent:</b> Wednesday, April 12, 2017 11:18:48 PM<br>
<b>To:</b> Junxiao Shi<br>
<b>Cc:</b> Ashlesh Gawande (agawande); ndnsim; Spyridon (Spyros) Mastorakis<span class=""><br>
<b>Subject:</b> Re: [ndnSIM] SIGSEGV when simply assigning one smart pointer to another?</span></font>
<div> </div>
</div><div><div class="h5">
<div>
<div dir="ltr">
<div>
<div>Greetings again ndnSIM friends,<br>
<br>
</div>
<div>As requested:<br>
<br>
---------------------<br>
<b>(gdb) run<br>
Starting program: /home/jpbaugh/ndnSIM/my-<wbr>simulations/build/jpb-pop1 <br>
[Thread debugging using libthread_db enabled]<br>
Using host libthread_db library "/lib/x86_64-linux-gnu/<wbr>libthread_db.so.1".<br>
Inside ctor for PStrat<br>
Inside ctor for PStrat<br>
Inside ctor for PStrat<br>
Inside ctor for PStrat<br>
In jpb-pop1 main: 0x7fffffffd6a0<br>
About to get forwarder<br>
Just got forwarder.  About to get strategy choice<br>
Just got strategy choice, about to get effectiveStrategy<br>
Just got effective strategy, about to set popularity manager for it.<br>
About to set Popularity Manager inside PStrat<br>
Before assignment line<br>
<br>
Program received signal SIGSEGV, Segmentation fault.<br>
std::_Sp_counted_base<(__gnu_<wbr>cxx::_Lock_policy)2>::_M_<wbr>release (this=0x2710)<br>
    at /usr/include/c++/5/bits/<wbr>shared_ptr_base.h:147<br>
147        if (__gnu_cxx::__exchange_and_<wbr>add_dispatch(&_M_use_count, -1) == 1)<br>
<span style="color:rgb(255,0,0)">(gdb) bt full</span><br>
#0  std::_Sp_counted_base<(__gnu_<wbr>cxx::_Lock_policy)2>::_M_<wbr>release (this=0x2710)<br>
    at /usr/include/c++/5/bits/<wbr>shared_ptr_base.h:147<br>
No locals.<br>
#1  std::__shared_count<(__gnu_<wbr>cxx::_Lock_policy)2>::~__<wbr>shared_count (<br>
    this=<optimized out>, __in_chrg=<optimized out>)<br>
    at /usr/include/c++/5/bits/<wbr>shared_ptr_base.h:659<br>
No locals.<br>
#2  std::__shared_ptr<<wbr>PopularityManager, (__gnu_cxx::_Lock_policy)2>::~<wbr>__shared_ptr (this=<optimized out>, __in_chrg=<optimized out>)<br>
    at /usr/include/c++/5/bits/<wbr>shared_ptr_base.h:925<br>
No locals.<br>
#3  std::__shared_ptr<<wbr>PopularityManager, (__gnu_cxx::_Lock_policy)2>::<wbr>operator=(std::__shared_ptr<<wbr>PopularityManager, (__gnu_cxx::_Lock_policy)2>&&) (<br>
    __r=<optimized out>, this=0x75fc50)<br>
    at /usr/include/c++/5/bits/<wbr>shared_ptr_base.h:1000<br>
No locals.<br>
#4  std::shared_ptr<<wbr>PopularityManager>::operator=(<wbr>std::shared_ptr<<wbr>PopularityManager>&&) (__r=<optimized out>, this=0x75fc50)<br>
    at /usr/include/c++/5/bits/<wbr>shared_ptr.h:294<br>
No locals.<br>
#5  nfd::fw::PStrat::<wbr>setPopularityManager (this=0x75fba0, pm=...)<br>
    at ../extensions/PStrat.cpp:56<br>
No locals.<br>
---Type <return> to continue, or q <return> to quit---<br>
#6  0x0000000000407fb9 in ns3::main (argc=<optimized out>, <br>
    argv=<optimized out>) at ../scenarios/jpb-pop1.cpp:120<br>
        cmd = {<br>
          m_items = {<std::__cxx11::_List_base<<wbr>ns3::CommandLine::Item*, std::allocator<ns3::<wbr>CommandLine::Item*> >> = {<br>
              _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::CommandLine::Item*> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>CommandLine::Item*> >> = {<No data fields>}, <No data fields>},
<br>
                _M_node = {<std::__detail::_List_node_<wbr>base> = {<br>
                    _M_next = 0x7fffffffdc60, _M_prev = 0x7fffffffdc60}, <br>
                  _M_data = 0}}}, <No data fields>}, m_usage = "", <br>
          m_name = "jpb-pop1"}<br>
        nodes = {m_nodes = std::vector of length 4, capacity 4 = {{<br>
              m_ptr = 0x67f7f0}, {m_ptr = 0x67f730}, {m_ptr = 0x67fa30}, {<br>
              m_ptr = 0x67fb30}}}<br>
        p2p = {<ns3::PcapHelperForDevice> = {<br>
            _vptr.PcapHelperForDevice = 0x61c618 <vtable for ns3::PointToPointHelper+16>}, <ns3::<wbr>AsciiTraceHelperForDevice> = {<br>
            _vptr.<wbr>AsciiTraceHelperForDevice = 0x61c648 <vtable for ns3::PointToPointHelper+64>}, m_queueFactory = {m_tid = {m_tid = 56}, m_parameters = {<br>
              m_list = {<std::__cxx11::_List_base<<wbr>ns3::<wbr>AttributeConstructionList::<wbr>Item, std::allocator<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<br>
                  _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::AttributeConst---<wbr>Type <return> to continue, or q <return> to quit---<br>
ructionList::Item> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<No data fields>}, <No data fields>},
<br>
                    _M_node = {<std::__detail::_List_node_<wbr>base> = {<br>
                        _M_next = 0x7fffffffd9d8, _M_prev = 0x7fffffffd9d8}, <br>
                      _M_data = 0}}}, <No data fields>}}}, m_channelFactory = {<br>
            m_tid = {m_tid = 198}, m_parameters = {<br>
              m_list = {<std::__cxx11::_List_base<<wbr>ns3::<wbr>AttributeConstructionList::<wbr>Item, std::allocator<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<br>
                  _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<No data fields>}, <No data fields>},
<br>
                    _M_node = {<std::__detail::_List_node_<wbr>base> = {<br>
                        _M_next = 0x7fffffffd9f8, _M_prev = 0x7fffffffd9f8}, <br>
                      _M_data = 0}}}, <No data fields>}}}, <br>
          m_remoteChannelFactory = {m_tid = {m_tid = 199}, m_parameters = {<br>
              m_list = {<std::__cxx11::_List_base<<wbr>ns3::<wbr>AttributeConstructionList::<wbr>Item, std::allocator<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<br>
                  _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<No data fields>}, <No data fields>},
<br>
                    _M_node = {<std::__detail::_List_node_<wbr>base> = {<br>
                        _M_next = 0x7fffffffda18, _M_prev = 0x7fffffffda18}, <br>
                      _M_data = 0}}}, <No data fields>}}}, m_deviceFactory = {<br>
            m_tid = {m_tid = 197}, m_parameters = {<br>
              m_list = {<std::__cxx11::_List_base<<wbr>ns3::<wbr>AttributeConstructionList::<wbr>Item, std::allocator<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<br>
                  _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<No data fields>}, <No data fields>},
<br>
                    _M_node = {<std::__detail::_List_node_<wbr>base> = {<br>
                        _M_next = 0x7fffffffda38, _M_prev = 0x7fffffffda38}, <br>
                      _M_data = 0}}}, <No data fields>}}}}<br>
        ndnHelper = {<boost::noncopyable_::<wbr>noncopyable> = {<No data fields>}, <br>
          _vptr.StackHelper = 0x7ffff5bed7b0 <vtable for ns3::ndn::StackHelper+16>, m_isRibManagerDisabled = false,
<br>
          m_<wbr>isForwarderStatusManagerDisabl<wbr>ed = false, <br>
          m_<wbr>isStrategyChoiceManagerDisable<wbr>d = false, m_ndnFactory = {m_tid = {<br>
              m_tid = 603}, m_parameters = {<br>
              m_list = {<std::__cxx11::_List_base<<wbr>ns3::<wbr>AttributeConstructionList::<wbr>Item, std::allocator<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<br>
                  _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<No data fields>}, <No data fields>},
<br>
                    _M_node = {<std::__detail::_List_node_<wbr>base> = {<br>
                        _M_next = 0x7fffffffdcd8, _M_prev = 0x7fffffffdcd8}, <br>
                      _M_data = 0}}}, <No data fields>}}}, <br>
          m_contentStoreFactory = {m_tid = {m_tid = 568}, m_parameters = {<br>
              m_list = {<std::__cxx11::_List_base<<wbr>ns3::<wbr>AttributeConstructionList::<wbr>Item, std::allocator<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<br>
                  _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<No data fields>}, <No data fields>},
<br>
                    _M_node = {<std::__detail::_List_node_<wbr>base> = {<br>
                        _M_next = 0x7fffffffdcf8, _M_prev = 0x7fffffffdcf8}, <br>
                      _M_data = 0}}}, <No data fields>}}}, <br>
          m_needSetDefaultRoutes = true, m_maxCsSize = 100, <br>
---Type <return> to continue, or q <return> to quit---<br>
          nc = {<std::_Maybe_unary_or_binary_<wbr>function<std::unique_ptr<nfd::<wbr>cs::Policy, std::default_delete<nfd::cs::<wbr>Policy> > >> = {<No data fields>}, <std::_Function_base> = {<br>
              static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x0, _M_const_object = 0x0, _M_function_pointer = 0x0, _M_member_pointer = NULL},
<br>
                _M_pod_data = '\000' <repeats 15 times>}, <br>
              _M_manager = 0x7ffff54f5000 <std::_Function_base::_Base_<wbr>manager<ns3::ndn::StackHelper:<wbr>:StackHelper()::<lambda()> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>},
<br>
            _M_invoker = 0x7ffff54f5040 <std::_Function_handler<std::<wbr>unique_ptr<nfd::cs::Policy, std::default_delete<nfd::cs::<wbr>Policy> >(), ns3::ndn::StackHelper::<wbr>StackHelper()::<lambda()> >::_M_invoke(const std::_Any_data &)>}, m_csPolicies = std::map with
 2 elements = {<br>
            ["nfd::cs::lru"] = {<std::_Maybe_unary_or_binary_<wbr>function<std::unique_ptr<nfd::<wbr>cs::Policy, std::default_delete<nfd::cs::<wbr>Policy> > >> = {<No data fields>}, <std::_Function_base> = {<br>
                static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x6d20656874207361, _M_const_object = 0x6d20656874207361,
<br>
                    _M_function_pointer = 0x6d20656874207361, _M_member_pointer = &virtual table offset 7863396448688173920, this adjustment 8151635676654827617}, _M_pod_data = "as the maximum q"},
<br>
                _M_manager = 0x7ffff54f5000 <std::_Function_base::_Base_<wbr>manager<ns3::ndn::StackHelper:<wbr>:StackHelper()::<lambda()> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>},
<br>
              _M_invoker = 0x7ffff54f5040 <std::_Function_handler<std::<wbr>unique_ptr<nfd::cs::Policy, std::default_delete<nfd::cs::<wbr>Policy> >(), ns3::ndn::StackHelper::<wbr>StackHelper()::<lambda()> >::_M_invoke(const std::_Any_data &)>},
<br>
            ["nfd::cs::priority_fifo"] = {<std::_Maybe_unary_or_binary_<wbr>function<std::unique_ptr<nfd::<wbr>cs::Policy, std::default_delete<nfd::cs::<wbr>Policy> > >> = {<No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor
 = {_M_unused = {_M_object = 0x0, _M_const_object = 0x0, _M_function_pointer = 0x0, _M_member_pointer = NULL},
<br>
                  _M_pod_data = "\000\000\000\000\000\000\000\<wbr>000\060\001\000\000\000\000\<wbr>000"},
<br>
                _M_manager = 0x7ffff54f5020 <std::_Function_base::_Base_<wbr>manager<ns3::ndn::StackHelper:<wbr>:StackHelper()::<lambda()> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>},
<br>
              _M_invoker = 0x7ffff54f50d0 <std::_Function_handler<std::<wbr>unique_ptr<nfd::cs::Policy, std::default_delete<nfd::cs::<wbr>Policy> >(), ns3::ndn::StackHelper::<wbr>StackHelper()::<lambda()> >::_M_invoke(const std::_Any_data &)>}},
<br>
          m_netDeviceCallbacks = {<std::__cxx11::_List_base<<wbr>std::pair<ns3::TypeId, ns3::Callback<std::shared_ptr<<wbr>nfd::face::Face>, ns3::Ptr<ns3::Node>, ns3::Ptr<ns3::ndn::L3Protocol><wbr>, ns3::Ptr<ns3::NetDevice>, ns3::empty, ns3::empty, ns3::empty, ns3::empty,
 ns3::empty, ns3::empty> >, std::allocator<std::pair<ns3::<wbr>TypeId, ns3::Callback<std::shared_ptr<<wbr>nfd::face::Face>, ns3::Ptr<ns3::Node>, ns3::Ptr<ns3::ndn::L3Protocol><wbr>, ns3::Ptr<ns3::NetDevice>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>
 > > >> = {<br>
              _M_impl = {<std::allocator<std::_List_<wbr>node<std::pair<ns3::TypeId, ns3::Callback<std::shared_ptr<<wbr>nfd::face::Face>, ns3::Ptr<ns3::Node>, ns3::Ptr<ns3::ndn::L3Protocol><wbr>, ns3::Ptr<ns3::NetDevice>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty,
 ns3::empty> > > >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<std::pair<ns3:<wbr>:TypeId, ns3::Callback<std::shared_ptr<<wbr>nfd::face::Face>, ns3::Ptr<ns3::Node>, ns3::Ptr<ns3::ndn::L3Protocol><wbr>, ns3::Ptr<ns3::NetDevice>, ns3::empty, ns3::empty, ns3::empty, ns3::empty,
 ns3::empty, ns3::empty> > > >> = {<No data fields>}, <No data fields>}, <br>
                _M_node = {<std::__detail::_List_node_<wbr>base> = {_M_next = 0x682740, _M_prev = 0x682740}, _M_data = 1}}}, <No data fields>}}<br>
        ndnGlobalRoutingHelper = {<No data fields>}<br>
        l3 = {m_ptr = 0x760140}<br>
        popularityManager = std::shared_ptr (count 2, weak 0) 0x7b0820<br>
        forwarder = std::shared_ptr (count 2, weak 0) 0x75f860<br>
        effectiveStrategy = @0x75fba0: {<nfd::fw::Strategy> = {<std::enable_shared_from_<wbr>this<nfd::fw::Strategy>> = {<br>
              _M_weak_this = std::weak_ptr (empty) 0x0}, <boost::noncopyable_::<wbr>noncopyable> = {<No data fields>}, _vptr.Strategy = 0x7ffff5c06c48 <vtable for nfd::fw::BestRouteStrategy2+<wbr>16>,
<br>
            afterAddFace = @0x75f8e8, beforeRemoveFace = @0x75f910, m_name = {<std::enable_shared_from_<wbr>this<ndn::Name>> = {_M_weak_this = std::weak_ptr (empty) 0x0},
<br>
              static npos = 18446744073709551615, m_nameBlock = {m_buffer = std::shared_ptr (empty) 0x0, m_type = 4294967295, m_begin = <error reading variable>}, m_forwarder = @0x75f860,
<br>
            m_measurements = {<boost::noncopyable_::<wbr>noncopyable> = {<No data fields>}, m_measurements = @0x75fa30, m_strategyChoice = @0x75fa40, m_strategy = 0x75fba0}},
<br>
          static STRATEGY_NAME = {<std::enable_shared_from_<wbr>this<ndn::Name>> = {_M_weak_this = std::weak_ptr (empty) 0x0}, static npos = 18446744073709551615, m_nameBlock = {<br>
              m_buffer = std::shared_ptr (empty) 0x0, m_type = 4294967295, m_begin = <error reading variable>}, popularityManager = std::shared_ptr (count 1, weak 0) 0x7b54c0}<br>
        policy = std::unique_ptr<<wbr>PopularityPolicy> containing 0x7fffffffd6b0<br>
        consumerHelper = {m_factory = {m_tid = {m_tid = 55264}, m_parameters = {<br>
              m_list = {<std::__cxx11::_List_base<<wbr>ns3::<wbr>AttributeConstructionList::<wbr>Item, std::allocator<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<br>
                  _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_<wbr>base>
 = {<br>
                        _M_next = 0x7fffee7cb87d <std::__cxx11::basic_string<<wbr>char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)+125>, _M_prev = 0x7fffeea2c1c0},
<br>
                      _M_data = 140737194490703}}}, <No data fields>}}}}<br>
        consumerHelper2 = {m_factory = {m_tid = {m_tid = 55704}, m_parameters = {<br>
              m_list = {<std::__cxx11::_List_base<<wbr>ns3::<wbr>AttributeConstructionList::<wbr>Item, std::allocator<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<br>
                  _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_<wbr>base>
 = {_M_next = 0x7fffffffd998, _M_prev = 0x70}, _M_data = 140737194491224}}}, <No data fields>}}}}<br>
        producerHelper = {m_factory = {m_tid = {m_tid = 55280}, m_parameters = {<br>
              m_list = {<std::__cxx11::_List_base<<wbr>ns3::<wbr>AttributeConstructionList::<wbr>Item, std::allocator<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<br>
                  _M_impl = {<std::allocator<std::_List_<wbr>node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<__gnu_cxx::new_allocator<<wbr>std::_List_node<ns3::<wbr>AttributeConstructionList::<wbr>Item> >> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_<wbr>base>
 = {_M_next = 0x0, _M_prev = 0x7fff00000002}, _M_data = 20}}}, <No data fields>}}}}<br>
#7  0x00007fffedde4830 in __libc_start_main (main=0x408cb0 <main(int, char**)>, argc=1, argv=0x7fffffffde98, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
<br>
    stack_end=0x7fffffffde88) at ../csu/libc-start.c:291<br>
---Type <return> to continue, or q <return> to quit---<br>
        result = <optimized out><br>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -3029923319900902443, 4231824, 140737488346768, 0, 0, 3029923876187565013, 3029893360785714133}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0,
<br>
              0x1, 0x408cb0 <main(int, char**)>}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1}}}<br>
        not_first_call = <optimized out><br>
#8  0x00000000004092b9 in _start ()<br>
No symbol table info available.</b><br>
<br>
<br>
<br>
---------------------<br>
</div>
<div><br>
</div>
Thanks,<br>
<br>
</div>
John<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Apr 11, 2017 at 8:43 AM, Junxiao Shi <span dir="ltr">
<<a href="mailto:shijunxiao@email.arizona.edu" target="_blank">shijunxiao@email.arizona.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="auto">
<div>`bt full` is better than `bt` as it shows local variables. See <a href="http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2016-May/001748.html" target="_blank">http://www.lists.cs.ucla.e<wbr>du/pipermail/nfd-dev/2016-May/<wbr>001748.html</a><span><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Apr 11, 2017 05:27, "Ashlesh Gawande (agawande)" <<a href="mailto:agawande@memphis.edu" target="_blank">agawande@memphis.edu</a>> wrote:<br type="attribution">
<blockquote class="m_-874456096636033735m_-6992279633347392766quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div id="m_-874456096636033735m_-6992279633347392766m_4568186287660411609divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr">
<p>So after gdb is done you need to put bt to get the backtrace:</p>
<p></p>
<div class="m_-874456096636033735m_-6992279633347392766quoted-text"><br style="color:rgb(33,33,33);font-size:15px">
<b style="color:rgb(33,33,33);font-size:15px">Program received signal SIGSEGV, Segmentation fault.</b><b style="color:rgb(33,33,33);font-size:15px"><br>
std::_Sp_counted_base<(__gnu_c<wbr>xx::_Lock_policy)2>::_M_releas<wbr>e (this=0x2710)</b><b style="color:rgb(33,33,33);font-size:15px"><br>
    at /usr/include/c++/5/bits/shared<wbr>_ptr_base.h:147</b><b style="color:rgb(33,33,33);font-size:15px"><br>
147        if (__gnu_cxx::__exchange_and_add<wbr>_dispatch(&_M_use_count, -1) == 1)</b></div>
<b style="color:rgb(33,33,33);font-size:15px"><br>
(gdb) bt</b><br style="color:rgb(33,33,33);font-size:15px">
<br>
<p></p>
<p>Ashlesh</p>
</div>
</div>
</blockquote>
</div>
</div>
</span></div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div></div></div>

</blockquote></div><br></div>