pcbnew PNS: crash when dragging a track

Description

i was dragging a track when pcbnew crashed

terminal output
(kicad:652): GLib-GObject-WARNING **: 06:35:06.821: invalid (NULL) pointer instance

(kicad:652): GLib-GObject-CRITICAL **: 06:35:06.821: g_signal_handlers_unblock_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(kicad:652): GLib-GObject-WARNING **: 06:35:20.507: invalid (NULL) pointer instance

(kicad:652): GLib-GObject-CRITICAL **: 06:35:20.507: g_signal_handlers_block_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(kicad:652): GLib-GObject-WARNING **: 06:35:20.507: invalid (NULL) pointer instance

(kicad:652): GLib-GObject-CRITICAL **: 06:35:20.507: g_signal_handlers_unblock_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
06:37:30 AM: Debug: ScreenToClient cannot work when toplevel window is not shown
ShowQuasiModal: optimal parent: 14SCH_EDIT_FRAME
/nix/store/afghxjb159hbb8g02929hhggxcpyzqbl-gcc-9.3.0/include/c++/9.3.0/debug/vector:434:
In function:
    std::__debug::vector<_Tp, _Allocator>::const_reference
    std::__debug::vector<_Tp,
    _Allocator>::operator[](std::__debug::vector<_Tp,
    _Allocator>::size_type) const [with _Tp =
    PNS_PCBNEW_RULE_RESOLVER::CLEARANCE_ENT; _Allocator =
    std::allocator<PNS_PCBNEW_RULE_RESOLVER::CLEARANCE_ENT>;
    std::__debug::vector<_Tp, _Allocator>::const_reference = const
    PNS_PCBNEW_RULE_RESOLVER::CLEARANCE_ENT&; std::__debug::vector<_Tp,
    _Allocator>::size_type = long unsigned int]

Error: attempt to subscript container with out-of-bounds index 69, but
container only holds 68 elements.

Objects involved in the operation:
    sequence "this" @ 0x0x89c04b8 {
      type = std::__debug::vector<PNS_PCBNEW_RULE_RESOLVER::CLEARANCE_ENT, std::allocator<PNS_PCBNEW_RULE_RESOLVER::CLEARANCE_ENT> >;
    }
[1]    652 abort (core dumped)  result/bin/kicad
gdb bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0, 4990918854516491596, 17486900630537567, 0, 0, 0, 0, 140501917668832, 500912864, 18446744073709551615, 500912982, 118, 509512912, 140501916196585, 140501920858806, 206158430232}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  0x00007fc926cb1548 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x7fc926e45260 <__GI__IO_file_jumps>, sa_sigaction = 0x7fc926e45260 <__GI__IO_file_jumps>}, sa_mask = {__val = {140501920859679, 1, 140501916317115, 509512912, 140501917668832, 509512912,
              140501920859678, 2, 140501920116211, 4123177608427872320, 1, 144442368, 9042521616059416, 140501253233784, 140501256612400, 509512912}}, sa_flags = 0,
          sa_restorer = 0x7fc8ff7daa20 <__gnu_debug::_Error_formatter::_S_at(char const*, unsigned int, char const*)::__formatter>}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007fc92706fb1b in ?? () from /nix/store/rmn2n2sycqviyccnhg85zangw1qpidx0-gcc-9.3.0-lib/lib/libstdc++.so.6
No symbol table info available.
#3  0x00007fc8fe4b6600 in std::__debug::vector<PNS_PCBNEW_RULE_RESOLVER::CLEARANCE_ENT, std::allocator<PNS_PCBNEW_RULE_RESOLVER::CLEARANCE_ENT> >::operator[] (this=this@entry=0x89c04b8, __n=<optimized out>)
    at /nix/store/afghxjb159hbb8g02929hhggxcpyzqbl-gcc-9.3.0/include/c++/9.3.0/debug/formatter.h:505
        __PRETTY_FUNCTION__ = "std::__debug::vector<_Tp, _Allocator>::const_reference std::__debug::vector<_Tp, _Allocator>::operator[](std::__debug::vector<_Tp, _Allocator>::size_type) const [with _Tp = PNS_PCBNEW_RULE_RESOLVER::C"...
#4  0x00007fc8fe4aa619 in PNS_PCBNEW_RULE_RESOLVER::Clearance (this=0x89c04a0, aA=0xd1e5fd0, aB=0x30a0fa0) at /build/source/pcbnew/router/pns_kicad_iface.cpp:269
        net_a = <optimized out>
        cl_a = <optimized out>
        net_b = <optimized out>
        cl_b = <optimized out>
        pad_a = <optimized out>
        pad_b = <optimized out>
#5  0x00007fc8fe541661 in PNS::NODE::GetClearance (aB=<optimized out>, aA=0xd1e5fd0, this=<optimized out>) at /build/source/pcbnew/router/pns_node.cpp:102
No locals.
#6  PNS::NODE::DEFAULT_OBSTACLE_VISITOR::operator() (this=0x1e5e9130, aCandidate=0xd1e5fd0) at /build/source/pcbnew/router/pns_node.cpp:232
        clearance = <optimized out>
        __PRETTY_FUNCTION__ = "virtual bool PNS::NODE::DEFAULT_OBSTACLE_VISITOR::operator()(PNS::ITEM*)"
        obs = {m_head = 0x0, m_item = 0x0, m_hull = {<SHAPE> = {_vptr.SHAPE = 0x0, m_type = SH_SEGMENT}, static SHAPE_IS_PT = -1,
            m_points = {<__gnu_debug::_Safe_container<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::allocator<VECTOR2<int> >, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0,
                    _M_version = 0}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {<std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {
                  _M_impl = {<std::allocator<VECTOR2<int> >> = {<__gnu_cxx::new_allocator<VECTOR2<int> >> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >::_Vector_impl_data> = {_M_start = 0x0, _M_finish = 0x0,
                      _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {_M_guaranteed_capacity = 1}, <No data fields>},
            m_shapes = {<__gnu_debug::_Safe_container<std::__debug::vector<long, std::allocator<long> >, std::allocator<long>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<long, std::allocator<long> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0,
                    _M_version = 0}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<long, std::allocator<long> >> = {<std::__cxx1998::_Vector_base<long, std::allocator<long> >> = {
                  _M_impl = {<std::allocator<long>> = {<__gnu_cxx::new_allocator<long>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<long, std::allocator<long> >::_Vector_impl_data> = {_M_start = 0x0,
                      _M_finish = 0x1e5e9000,
                      _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<long, std::allocator<long> >, std::__cxx1998::vector<long, std::allocator<long> > >> = {
                _M_guaranteed_capacity = 0}, <No data fields>},
            m_arcs = {<__gnu_debug::_Safe_container<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::allocator<SHAPE_ARC>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0,
                    _M_version = 147935968}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {<std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {
                  _M_impl = {<std::allocator<SHAPE_ARC>> = {<__gnu_cxx::new_allocator<SHAPE_ARC>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >::_Vector_impl_data> = {
                      _M_start = 0xb9057b38ddb50100, _M_finish = 0x1e5e9000,
                      _M_end_of_storage = 0x8a9f140}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {_M_guaranteed_capacity = 144}, <No data fields>}, m_closed = 16, m_width = 0, m_bbox = {m_Pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 509514032, y = 0}, m_Size = {
                static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 509513724, y = 0}}}, m_ipFirst = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 6, y = 0}, m_ipLast = {
            static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = -28051304, y = 32712}, m_distFirst = 0, m_distLast = 0}
#7  0x00007fc8fe53f8ab in RTree<PNS::ITEM*, int, 2, double, 8, 4>::Search<PNS::NODE::DEFAULT_OBSTACLE_VISITOR> (this=<optimized out>, a_foundCount=<optimized out>, a_visitor=..., a_rect=<optimized out>, a_node=<optimized out>)
    at /build/source/thirdparty/rtree/geometry/rtree.h:562
        id = @0x1e1f2e78: 0xd1e5fd0
        index = 2
        __PRETTY_FUNCTION__ = <optimized out>
        index = <optimized out>
#8  RTree<PNS::ITEM*, int, 2, double, 8, 4>::Search<PNS::NODE::DEFAULT_OBSTACLE_VISITOR> (this=0x832aa20, a_node=0x1e1f2e30, a_rect=0x1e5e9010, a_visitor=..., a_foundCount=@0x1e5e8ffc: 0)
    at /build/source/thirdparty/rtree/geometry/rtree.h:541
        __PRETTY_FUNCTION__ = <optimized out>
        index = <optimized out>
        id = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--c
#9  0x00007fc8fe5405b5 in RTree<PNS::ITEM*, int, 2, double, 8, 4>::Search<PNS::NODE::DEFAULT_OBSTACLE_VISITOR> (a_foundCount=@0x1e5e8ffc: 0, a_visitor=..., a_rect=0x1e5e9010, a_node=0x8a2edf0, this=0x832aa20) at /build/source/thirdparty/rtree/geometry/rtree.h:549
        index = 2
        __PRETTY_FUNCTION__ = <optimized out>
        index = <optimized out>
        index = <optimized out>
        id = <optimized out>
#10 RTree<PNS::ITEM*, int, 2, double, 8, 4>::Search<PNS::NODE::DEFAULT_OBSTACLE_VISITOR> (a_visitor=..., a_max=<synthetic pointer>, a_min=<synthetic pointer>, this=0x832aa20) at /build/source/thirdparty/rtree/geometry/rtree.h:177
        rect = {m_min = {192200000, 58600000}, m_max = {194600000, 61000000}}
        cnt = 0
        rect = <optimized out>
        cnt = <optimized out>
        axis = <optimized out>
#11 SHAPE_INDEX<PNS::ITEM*>::Query<PNS::NODE::DEFAULT_OBSTACLE_VISITOR> (this=<optimized out>, aShape=aShape@entry=0x30a0ff0, aMinDistance=aMinDistance@entry=800000, aVisitor=..., aExact=aExact@entry=false) at /build/source/libs/kimath/include/geometry/shape_index.h:279
        box = {m_Pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 192200000, y = 58600000}, m_Size = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 2400000, y = 2400000}}
        min = <optimized out>
        max = <optimized out>
#12 0x00007fc8fe540687 in PNS::INDEX::querySingle<PNS::NODE::DEFAULT_OBSTACLE_VISITOR> (aVisitor=..., aMinDistance=800000, aShape=0x30a0ff0, index=0, this=0x1dcef670) at /build/source/pcbnew/router/pns_index.h:164
No locals.
#13 PNS::INDEX::Query<PNS::NODE::DEFAULT_OBSTACLE_VISITOR> (this=0x1dcef670, aItem=aItem@entry=0x30a0fa0, aMinDistance=800000, aVisitor=...) at /build/source/pcbnew/router/pns_index.h:184
        shape = 0x30a0ff0
        total = 2
        layers = @0x30a0fc0: {m_start = 0, m_end = 31}
#14 0x00007fc8fe5316ef in PNS::NODE::QueryColliding (this=0x1dbf4020, aItem=0x30a0fa0, aObstacles=..., aKindMask=aKindMask@entry=255, aLimitCount=aLimitCount@entry=-1, aDifferentNetsOnly=aDifferentNetsOnly@entry=false, aForceClearance=-1) at /build/source/pcbnew/router/pns_node.cpp:297
        visitor = {<PNS::OBSTACLE_VISITOR> = {_vptr.OBSTACLE_VISITOR = 0x7fc8ff3a86f0 <vtable for PNS::NODE::DEFAULT_OBSTACLE_VISITOR+16>, m_item = 0x30a0fa0, m_node = 0x1e20aa70, m_override = 0x1dbf4020, m_extraClearance = 0}, m_tab = @0x1e5e9320, m_kindMask = 255, m_limitCount = -1, m_matchCount = 1, m_extraClearance = 0, m_differentNetsOnly = false, m_forceClearance = -1}
        __PRETTY_FUNCTION__ = "int PNS::NODE::QueryColliding(const PNS::ITEM*, PNS::NODE::OBSTACLES&, int, int, bool, int)"
#15 0x00007fc8fe48d7ea in PNS::TOPOLOGY::AssembleCluster (this=this@entry=0x1e5e9460, aStart=<optimized out>, aStart@entry=0x971ad20, aLayer=0) at /build/source/pcbnew/router/pns_topology.cpp:377
        obstacles = {<__gnu_debug::_Safe_container<std::__debug::vector<PNS::OBSTACLE, std::allocator<PNS::OBSTACLE> >, std::allocator<PNS::OBSTACLE>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<PNS::OBSTACLE, std::allocator<PNS::OBSTACLE> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 2}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<PNS::OBSTACLE, std::allocator<PNS::OBSTACLE> >> = {<std::__cxx1998::_Vector_base<PNS::OBSTACLE, std::allocator<PNS::OBSTACLE> >> = {_M_impl = {<std::allocator<PNS::OBSTACLE>> = {<__gnu_cxx::new_allocator<PNS::OBSTACLE>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<PNS::OBSTACLE, std::allocator<PNS::OBSTACLE> >::_Vector_impl_data> = {_M_start = 0x31cb710, _M_finish = 0x31cb808, _M_end_of_storage = 0x31cb808}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<PNS::OBSTACLE, std::allocator<PNS::OBSTACLE> >, std::__cxx1998::vector<PNS::OBSTACLE, std::allocator<PNS::OBSTACLE> > >> = {_M_guaranteed_capacity = 1}, <No data fields>}
        top = 0x30a0fa0
        visited = {<__gnu_debug::_Safe_container<std::__debug::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> >, std::allocator<PNS::ITEM*>, __gnu_debug::_Safe_node_sequence, true>> = {<__gnu_debug::_Safe_node_sequence<std::__debug::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> > >> = {<__gnu_debug::_Safe_sequence<std::__debug::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <No data fields>}, <std::__cxx1998::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> >> = {_M_t = {_M_impl = {<std::allocator<std::_Rb_tree_node<PNS::ITEM*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<PNS::ITEM*> >> = {<No data fields>}, <No data fields>}, <std::_Rb_tree_key_compare<std::less<PNS::ITEM*> >> = {_M_key_compare = {<std::binary_function<PNS::ITEM*, PNS::ITEM*, bool>> = {<No data fields>}, <No data fields>}}, <std::_Rb_tree_header> = {_M_header = {_M_color = std::_S_red, _M_parent = 0xc3dd420, _M_left = 0x1e1f3730, _M_right = 0x72930c0}, _M_node_count = 8}, <No data fields>}}}, <No data fields>}
        pending = {<__gnu_debug::_Safe_container<std::__debug::deque<PNS::ITEM*, std::allocator<PNS::ITEM*> >, std::allocator<PNS::ITEM*>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::deque<PNS::ITEM*, std::allocator<PNS::ITEM*> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 9}, <No data fields>}, <No data fields>}, <std::__cxx1998::deque<PNS::ITEM*, std::allocator<PNS::ITEM*> >> = {<std::__cxx1998::_Deque_base<PNS::ITEM*, std::allocator<PNS::ITEM*> >> = {_M_impl = {<std::allocator<PNS::ITEM*>> = {<__gnu_cxx::new_allocator<PNS::ITEM*>> = {<No data fields>}, <No data fields>}, _M_map = 0xd002090, _M_map_size = 8, _M_start = {_M_cur = 0x8d4d840, _M_first = 0x8d4d800, _M_last = 0x8d4da00, _M_node = 0xd0020a8}, _M_finish = {_M_cur = 0x8d4d840, _M_first = 0x8d4d800, _M_last = 0x8d4da00, _M_node = 0xd0020a8}}}, <No data fields>}, <No data fields>}
#16 0x00007fc8fe563fe9 in PNS::SHOVE::onCollidingSolid (this=0x1e22a110, aCurrent=..., aObstacle=0x971ad20) at /build/source/pcbnew/router/pns_layerset.h:85
        walkaround = {<PNS::ALGO_BASE> = {_vptr.ALGO_BASE = 0x7fc8ff46d980 <vtable for PNS::WALKAROUND+16>, m_debugDecorator = 0x0, m_router = 0x1e20a520, m_logger = 0x0}, static DefaultIterationLimit = 50, m_world = 0x1dbf4020, m_recursiveBlockageCount = 0, m_iteration = 0, m_iterationLimit = 50, m_itemMask = 255, m_forceSingleDirection = false, m_forceLongerPath = false, m_cursorApproachMode = false, m_forceWinding = false, m_forceCw = false, m_forceUniqueWindingDirection = false, m_cursorPos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}, m_currentObstacle = {{<boost::optional_detail::optional_base<PNS::OBSTACLE>> = {<boost::optional_detail::optional_tag> = {<No data fields>}, m_initialized = false, m_storage = {dummy_ = {data = "@\334b\006\000\000\000\000As\300\375\310\177\000\000\020P\037\r\000\000\000\000\270\210^\036", '\000' <repeats 68 times>, "\232`\332\376\310\177\000\000@\334b\006\000\000\000\000\024\000\000\000\000\000\000\000\025\000\000\000\000\000\000\000PP\377'\311\177\000\000\060;\355'\311\177", '\000' <repeats 27 times>, "\001\265\335\070{\005\271\000\000\000\000\000\000\000\000\300\037\350'\311\177\000\000\000\000\000\000\000\000\000\000"..., aligner_ = {<No data fields>}}}}, <No data fields>}, {<boost::optional_detail::optional_base<PNS::OBSTACLE>> = {<boost::optional_detail::optional_tag> = {<No data fields>}, m_initialized = false, m_storage = {dummy_ = {data = "PP\377'\311\177\000\000\060\234^\036\000\000\000\000\232`\332\376\310\177\000\000\025\000\000\000\000\000\000\000@\334b\006\000\000\000\000\232/\350'\311\177\000\000\000\000\000\000\000\000\000\000\224\334b\006\000\000\000\000\020\256\336\b\000\000\000\000\000\001\265\335\070{\005\271\000\000\000\000\000\000\000\000\000\001\265\335\070{\005\271\000'\277\000\000\000\000\000\060\234^\036\000\000\000\000\340\240^\036", '\000' <repeats 12 times>, "\360\215\371\006", '\000' <repeats 12 times>, "\030\000\000\000\000\000\000\000\020\237^\036\000\000\000\000\\\334b\006\000\000\000\000\025\226\a'\311\177\000\000\024\000\000\000\000\000\000\000\234.\351'\311\177", '\000' <repeats 26 times>..., aligner_ = {<No data fields>}}}}, <No data fields>}}, m_recursiveCollision = {false, false}, m_restrictedSet = {<__gnu_debug::_Safe_container<std::__debug::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> >, std::allocator<PNS::ITEM*>, __gnu_debug::_Safe_node_sequence, true>> = {<__gnu_debug::_Safe_node_sequence<std::__debug::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> > >> = {<__gnu_debug::_Safe_sequence<std::__debug::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <No data fields>}, <std::__cxx1998::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> >> = {_M_t = {_M_impl = {<std::allocator<std::_Rb_tree_node<PNS::ITEM*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<PNS::ITEM*> >> = {<No data fields>}, <No data fields>}, <std::_Rb_tree_key_compare<std::less<PNS::ITEM*> >> = {_M_key_compare = {<std::binary_function<PNS::ITEM*, PNS::ITEM*, bool>> = {<No data fields>}, <No data fields>}}, <std::_Rb_tree_header> = {_M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0x1e5e9cc0, _M_right = 0x1e5e9cc0}, _M_node_count = 0}, <No data fields>}}}, <No data fields>}}
        walkaroundLine = {<PNS::ITEM> = {_vptr.ITEM = 0x7fc8ff46df10 <vtable for PNS::LINE+16>, static UnusedNet = 2147483647, m_kind = PNS::ITEM::LINE_T, m_parent = 0x0, m_owner = 0x0, m_layers = {m_start = 0, m_end = 0}, m_movable = true, m_net = 44, m_marker = 1, m_rank = 100000, m_routable = true}, m_segmentRefs = {<__gnu_debug::_Safe_container<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >, std::allocator<PNS::LINKED_ITEM*>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 2}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >> = {<std::__cxx1998::_Vector_base<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >> = {_M_impl = {<std::allocator<PNS::LINKED_ITEM*>> = {<__gnu_cxx::new_allocator<PNS::LINKED_ITEM*>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >::_Vector_impl_data> = {_M_start = 0x68d25e0, _M_finish = 0x68d2620, _M_end_of_storage = 0x68d2620}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >, std::__cxx1998::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> > >> = {_M_guaranteed_capacity = 8}, <No data fields>}, m_line = {<SHAPE> = {_vptr.SHAPE = 0x7fc8ff4a1c78 <vtable for SHAPE_LINE_CHAIN+16>, m_type = SH_LINE_CHAIN}, static SHAPE_IS_PT = -1, m_points = {<__gnu_debug::_Safe_container<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::allocator<VECTOR2<int> >, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {<std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {_M_impl = {<std::allocator<VECTOR2<int> >> = {<__gnu_cxx::new_allocator<VECTOR2<int> >> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >::_Vector_impl_data> = {_M_start = 0x313a060, _M_finish = 0x313a0a8, _M_end_of_storage = 0x313a0a8}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {_M_guaranteed_capacity = 9}, <No data fields>}, m_shapes = {<__gnu_debug::_Safe_container<std::__debug::vector<long, std::allocator<long> >, std::allocator<long>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<long, std::allocator<long> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<long, std::allocator<long> >> = {<std::__cxx1998::_Vector_base<long, std::allocator<long> >> = {_M_impl = {<std::allocator<long>> = {<__gnu_cxx::new_allocator<long>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<long, std::allocator<long> >::_Vector_impl_data> = {_M_start = 0x8a5c850, _M_finish = 0x8a5c898, _M_end_of_storage = 0x8a5c898}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<long, std::allocator<long> >, std::__cxx1998::vector<long, std::allocator<long> > >> = {_M_guaranteed_capacity = 9}, <No data fields>}, m_arcs = {<__gnu_debug::_Safe_container<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::allocator<SHAPE_ARC>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {<std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {_M_impl = {<std::allocator<SHAPE_ARC>> = {<__gnu_cxx::new_allocator<SHAPE_ARC>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >::_Vector_impl_data> = {_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {_M_guaranteed_capacity = 0}, <No data fields>}, m_closed = false, m_width = 0, m_bbox = {m_Pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 137000000, y = 78396714}, m_Size = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 40121052, y = 30603286}}}, m_width = 250000, m_hasVia = false, m_snapThreshhold = 125000, m_via = {<PNS::ITEM> = {_vptr.ITEM = 0x7fc8ff46c3a8 <vtable for PNS::VIA+16>, static UnusedNet = 2147483647, m_kind = PNS::ITEM::VIA_T, m_parent = 0x0, m_owner = 0x0, m_layers = {m_start = -1, m_end = -1}, m_movable = true, m_net = 2147483647, m_marker = 0, m_rank = -1, m_routable = true}, m_diameter = 2, m_drill = 0, m_pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}, m_shape = {<SHAPE> = {_vptr.SHAPE = 0x7fc8ff4654b8 <vtable for SHAPE_CIRCLE+16>, m_type = SH_CIRCLE}, m_radius = 0, m_center = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}}, m_viaType = VIATYPE::THROUGH}}
        topo = {m_world = 0x1dbf4020}
        cluster = {<__gnu_debug::_Safe_container<std::__debug::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> >, std::allocator<PNS::ITEM*>, __gnu_debug::_Safe_node_sequence, true>> = {<__gnu_debug::_Safe_node_sequence<std::__debug::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> > >> = {<__gnu_debug::_Safe_sequence<std::__debug::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <No data fields>}, <std::__cxx1998::set<PNS::ITEM*, std::less<PNS::ITEM*>, std::allocator<PNS::ITEM*> >> = {_M_t = {_M_impl = {<std::allocator<std::_Rb_tree_node<PNS::ITEM*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<PNS::ITEM*> >> = {<No data fields>}, <No data fields>}, <std::_Rb_tree_key_compare<std::less<PNS::ITEM*> >> = {_M_key_compare = {<std::binary_function<PNS::ITEM*, PNS::ITEM*, bool>> = {<No data fields>}, <No data fields>}}, <std::_Rb_tree_header> = {_M_header = {_M_color = std::_S_red, _M_parent = 0xc3dd420, _M_left = 0x1e1f3730, _M_right = 0x72930c0}, _M_node_count = 8}, <No data fields>}}}, <No data fields>}
        currentRank = <optimized out>
        nextRank = <optimized out>
        success = <optimized out>
#17 0x00007fc8fe565f92 in PNS::SHOVE::shoveIteration (this=0x1e22a110, aIter=0) at /build/source/pcbnew/router/pns_shove.cpp:1171
        currentLine = {<PNS::ITEM> = {_vptr.ITEM = 0x7fc8ff46df10 <vtable for PNS::LINE+16>, static UnusedNet = 2147483647, m_kind = PNS::ITEM::LINE_T, m_parent = 0x0, m_owner = 0x0, m_layers = {m_start = 0, m_end = 0}, m_movable = true, m_net = 44, m_marker = 1, m_rank = 100000, m_routable = true}, m_segmentRefs = {<__gnu_debug::_Safe_container<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >, std::allocator<PNS::LINKED_ITEM*>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 2}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >> = {<std::__cxx1998::_Vector_base<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >> = {_M_impl = {<std::allocator<PNS::LINKED_ITEM*>> = {<__gnu_cxx::new_allocator<PNS::LINKED_ITEM*>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >::_Vector_impl_data> = {_M_start = 0x1e247c00, _M_finish = 0x1e247c40, _M_end_of_storage = 0x1e247c40}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >, std::__cxx1998::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> > >> = {_M_guaranteed_capacity = 8}, <No data fields>}, m_line = {<SHAPE> = {_vptr.SHAPE = 0x7fc8ff4a1c78 <vtable for SHAPE_LINE_CHAIN+16>, m_type = SH_LINE_CHAIN}, static SHAPE_IS_PT = -1, m_points = {<__gnu_debug::_Safe_container<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::allocator<VECTOR2<int> >, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {<std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {_M_impl = {<std::allocator<VECTOR2<int> >> = {<__gnu_cxx::new_allocator<VECTOR2<int> >> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >::_Vector_impl_data> = {_M_start = 0x8a591b0, _M_finish = 0x8a591f8, _M_end_of_storage = 0x8a591f8}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {_M_guaranteed_capacity = 9}, <No data fields>}, m_shapes = {<__gnu_debug::_Safe_container<std::__debug::vector<long, std::allocator<long> >, std::allocator<long>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<long, std::allocator<long> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<long, std::allocator<long> >> = {<std::__cxx1998::_Vector_base<long, std::allocator<long> >> = {_M_impl = {<std::allocator<long>> = {<__gnu_cxx::new_allocator<long>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<long, std::allocator<long> >::_Vector_impl_data> = {_M_start = 0x6786c60, _M_finish = 0x6786ca8, _M_end_of_storage = 0x6786ca8}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<long, std::allocator<long> >, std::__cxx1998::vector<long, std::allocator<long> > >> = {_M_guaranteed_capacity = 9}, <No data fields>}, m_arcs = {<__gnu_debug::_Safe_container<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::allocator<SHAPE_ARC>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {<std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {_M_impl = {<std::allocator<SHAPE_ARC>> = {<__gnu_cxx::new_allocator<SHAPE_ARC>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >::_Vector_impl_data> = {_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {_M_guaranteed_capacity = 0}, <No data fields>}, m_closed = false, m_width = 0, m_bbox = {m_Pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 137000000, y = 78396714}, m_Size = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 40121052, y = 30603286}}}, m_width = 250000, m_hasVia = false, m_snapThreshhold = 125000, m_via = {<PNS::ITEM> = {_vptr.ITEM = 0x7fc8ff46c3a8 <vtable for PNS::VIA+16>, static UnusedNet = 2147483647, m_kind = PNS::ITEM::VIA_T, m_parent = 0x0, m_owner = 0x0, m_layers = {m_start = -1, m_end = -1}, m_movable = true, m_net = 2147483647, m_marker = 0, m_rank = -1, m_routable = true}, m_diameter = 2, m_drill = 0, m_pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}, m_shape = {<SHAPE> = {_vptr.SHAPE = 0x7fc8ff4654b8 <vtable for SHAPE_CIRCLE+16>, m_type = SH_CIRCLE}, m_radius = 0, m_center = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}}, m_viaType = VIATYPE::THROUGH}}
        nearest = {<boost::optional_detail::optional_base<PNS::OBSTACLE>> = {<boost::optional_detail::optional_tag> = {<No data fields>}, m_initialized = true, m_storage = {dummy_ = {data = "\020\325F\377\310\177\000\000 \255q\t\000\000\000\000x\034J\377\310\177\000\000\002", '\000' <repeats 23 times>, "\001\000\000\000\000\000\000\000\000\241\253\035\000\000\000\000@\241\253\035\000\000\000\000@\241\253\035\000\000\000\000\b", '\000' <repeats 23 times>, "\001\000\000\000\000\000\000\000@Q\312\f\000\000\000\000\200Q\312\f\000\000\000\000\200Q\312\f\000\000\000\000\b", '\000' <repeats 23 times>, "\001", '\000' <repeats 39 times>..., aligner_ = {<No data fields>}}}}, <No data fields>}
        st = <optimized out>
        ni = 0x971ad20
        __FUNCTION__ = "shoveIteration"
        __PRETTY_FUNCTION__ = "PNS::SHOVE::SHOVE_STATUS PNS::SHOVE::shoveIteration(int)"
#18 0x00007fc8fe566a7e in PNS::SHOVE::shoveMainLoop (this=0x1e22a110) at /build/source/pcbnew/router/pns_shove.cpp:1214
        st = <optimized out>
        __FUNCTION__ = "shoveMainLoop"
        iterLimit = 250
        timeLimit = {m_limitMs = 1000, m_startTics = 1595223831357}
#19 0x00007fc8fe567208 in PNS::SHOVE::ShoveLines (this=0x1e22a110, aCurrentHead=...) at /build/source/pcbnew/router/pns_shove.cpp:1307
        st = PNS::SHOVE::SH_OK
        head = {<PNS::ITEM> = {_vptr.ITEM = 0x7fc8ff46df10 <vtable for PNS::LINE+16>, static UnusedNet = 2147483647, m_kind = PNS::ITEM::LINE_T, m_parent = 0x0, m_owner = 0x0, m_layers = {m_start = 0, m_end = 0}, m_movable = true, m_net = 44, m_marker = 1, m_rank = 100000, m_routable = true}, m_segmentRefs = {<__gnu_debug::_Safe_container<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >, std::allocator<PNS::LINKED_ITEM*>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 7}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >> = {<std::__cxx1998::_Vector_base<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >> = {_M_impl = {<std::allocator<PNS::LINKED_ITEM*>> = {<__gnu_cxx::new_allocator<PNS::LINKED_ITEM*>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >::_Vector_impl_data> = {_M_start = 0x8377400, _M_finish = 0x8377440, _M_end_of_storage = 0x8377440}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >, std::__cxx1998::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> > >> = {_M_guaranteed_capacity = 8}, <No data fields>}, m_line = {<SHAPE> = {_vptr.SHAPE = 0x7fc8ff4a1c78 <vtable for SHAPE_LINE_CHAIN+16>, m_type = SH_LINE_CHAIN}, static SHAPE_IS_PT = -1, m_points = {<__gnu_debug::_Safe_container<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::allocator<VECTOR2<int> >, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {<std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {_M_impl = {<std::allocator<VECTOR2<int> >> = {<__gnu_cxx::new_allocator<VECTOR2<int> >> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >::_Vector_impl_data> = {_M_start = 0x1da9ecc0, _M_finish = 0x1da9ed08, _M_end_of_storage = 0x1da9ed08}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {_M_guaranteed_capacity = 9}, <No data fields>}, m_shapes = {<__gnu_debug::_Safe_container<std::__debug::vector<long, std::allocator<long> >, std::allocator<long>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<long, std::allocator<long> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<long, std::allocator<long> >> = {<std::__cxx1998::_Vector_base<long, std::allocator<long> >> = {_M_impl = {<std::allocator<long>> = {<__gnu_cxx::new_allocator<long>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<long, std::allocator<long> >::_Vector_impl_data> = {_M_start = 0x30e9650, _M_finish = 0x30e9698, _M_end_of_storage = 0x30e9698}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<long, std::allocator<long> >, std::__cxx1998::vector<long, std::allocator<long> > >> = {_M_guaranteed_capacity = 9}, <No data fields>}, m_arcs = {<__gnu_debug::_Safe_container<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::allocator<SHAPE_ARC>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {<std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {_M_impl = {<std::allocator<SHAPE_ARC>> = {<__gnu_cxx::new_allocator<SHAPE_ARC>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >::_Vector_impl_data> = {_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {_M_guaranteed_capacity = 0}, <No data fields>}, m_closed = false, m_width = 0, m_bbox = {m_Pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 137000000, y = 78396714}, m_Size = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 40121052, y = 30603286}}}, m_width = 250000, m_hasVia = false, m_snapThreshhold = 125000, m_via = {<PNS::ITEM> = {_vptr.ITEM = 0x7fc8ff46c3a8 <vtable for PNS::VIA+16>, static UnusedNet = 2147483647, m_kind = PNS::ITEM::VIA_T, m_parent = 0x0, m_owner = 0x0, m_layers = {m_start = -1, m_end = -1}, m_movable = true, m_net = 2147483647, m_marker = 0, m_rank = -1, m_routable = true}, m_diameter = 2, m_drill = 0, m_pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}, m_shape = {<SHAPE> = {_vptr.SHAPE = 0x7fc8ff4654b8 <vtable for SHAPE_CIRCLE+16>, m_type = SH_CIRCLE}, m_radius = 0, m_center = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}}, m_viaType = VIATYPE::THROUGH}}
        headSet = {m_items = {<__gnu_debug::_Safe_container<std::__debug::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >, std::allocator<PNS::ITEM_SET::ENTRY>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 2}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >> = {<std::__cxx1998::_Vector_base<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >> = {_M_impl = {<std::allocator<PNS::ITEM_SET::ENTRY>> = {<__gnu_cxx::new_allocator<PNS::ITEM_SET::ENTRY>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >::_Vector_impl_data> = {_M_start = 0x9824b70, _M_finish = 0x9824b80, _M_end_of_storage = 0x9824b80}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >, std::__cxx1998::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> > >> = {_M_guaranteed_capacity = 1}, <No data fields>}}
        dummyVia = {valid = false, pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}, layers = {m_start = -1, m_end = -1}, net = 0}
        parent = 0x1bd86160
        __FUNCTION__ = "ShoveLines"
#20 0x00007fc8fe4e6e70 in PNS::DRAGGER::dragShove (this=0xd1f2df0, aP=...) at /nix/store/afghxjb159hbb8g02929hhggxcpyzqbl-gcc-9.3.0/include/c++/9.3.0/bits/unique_ptr.h:360
        thresh = 125000
        dragged = {<PNS::ITEM> = {_vptr.ITEM = 0x7fc8ff46df10 <vtable for PNS::LINE+16>, static UnusedNet = 2147483647, m_kind = PNS::ITEM::LINE_T, m_parent = 0x0, m_owner = 0x0, m_layers = {m_start = 0, m_end = 0}, m_movable = true, m_net = 44, m_marker = 0, m_rank = -1, m_routable = true}, m_segmentRefs = {<__gnu_debug::_Safe_container<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >, std::allocator<PNS::LINKED_ITEM*>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 2}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >> = {<std::__cxx1998::_Vector_base<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >> = {_M_impl = {<std::allocator<PNS::LINKED_ITEM*>> = {<__gnu_cxx::new_allocator<PNS::LINKED_ITEM*>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >::_Vector_impl_data> = {_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> >, std::__cxx1998::vector<PNS::LINKED_ITEM*, std::allocator<PNS::LINKED_ITEM*> > >> = {_M_guaranteed_capacity = 0}, <No data fields>}, m_line = {<SHAPE> = {_vptr.SHAPE = 0x7fc8ff4a1c78 <vtable for SHAPE_LINE_CHAIN+16>, m_type = SH_LINE_CHAIN}, static SHAPE_IS_PT = -1, m_points = {<__gnu_debug::_Safe_container<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::allocator<VECTOR2<int> >, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 2}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {<std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >> = {_M_impl = {<std::allocator<VECTOR2<int> >> = {<__gnu_cxx::new_allocator<VECTOR2<int> >> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<VECTOR2<int>, std::allocator<VECTOR2<int> > >::_Vector_impl_data> = {_M_start = 0x72ee5f0, _M_finish = 0x72ee638, _M_end_of_storage = 0x72ee638}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > >, std::__cxx1998::vector<VECTOR2<int>, std::allocator<VECTOR2<int> > > >> = {_M_guaranteed_capacity = 9}, <No data fields>}, m_shapes = {<__gnu_debug::_Safe_container<std::__debug::vector<long, std::allocator<long> >, std::allocator<long>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<long, std::allocator<long> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 2}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<long, std::allocator<long> >> = {<std::__cxx1998::_Vector_base<long, std::allocator<long> >> = {_M_impl = {<std::allocator<long>> = {<__gnu_cxx::new_allocator<long>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<long, std::allocator<long> >::_Vector_impl_data> = {_M_start = 0x8d1d9b0, _M_finish = 0x8d1d9f8, _M_end_of_storage = 0x8d1d9f8}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<long, std::allocator<long> >, std::__cxx1998::vector<long, std::allocator<long> > >> = {_M_guaranteed_capacity = 9}, <No data fields>}, m_arcs = {<__gnu_debug::_Safe_container<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::allocator<SHAPE_ARC>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 2}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {<std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >> = {_M_impl = {<std::allocator<SHAPE_ARC>> = {<__gnu_cxx::new_allocator<SHAPE_ARC>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<SHAPE_ARC, std::allocator<SHAPE_ARC> >::_Vector_impl_data> = {_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> >, std::__cxx1998::vector<SHAPE_ARC, std::allocator<SHAPE_ARC> > >> = {_M_guaranteed_capacity = 0}, <No data fields>}, m_closed = false, m_width = 0, m_bbox = {m_Pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 137000000, y = 78396714}, m_Size = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 40121052, y = 30603286}}}, m_width = 250000, m_hasVia = false, m_snapThreshhold = 125000, m_via = {<PNS::ITEM> = {_vptr.ITEM = 0x7fc8ff46c3a8 <vtable for PNS::VIA+16>, static UnusedNet = 2147483647, m_kind = PNS::ITEM::VIA_T, m_parent = 0x0, m_owner = 0x0, m_layers = {m_start = -1, m_end = -1}, m_movable = true, m_net = 2147483647, m_marker = 0, m_rank = -1, m_routable = true}, m_diameter = 2, m_drill = 0, m_pos = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}, m_shape = {<SHAPE> = {_vptr.SHAPE = 0x7fc8ff4654b8 <vtable for SHAPE_CIRCLE+16>, m_type = SH_CIRCLE}, m_radius = 0, m_center = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 0, y = 0}}, m_viaType = VIATYPE::THROUGH}}
        st = <optimized out>
        ok = false
#21 0x00007fc8fe481817 in PNS::ROUTER::moveDragging (this=0x1e20a520, aP=..., aEndItem=<optimized out>) at /nix/store/afghxjb159hbb8g02929hhggxcpyzqbl-gcc-9.3.0/include/c++/9.3.0/bits/unique_ptr.h:360
        dragged = {m_items = {<__gnu_debug::_Safe_container<std::__debug::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >, std::allocator<PNS::ITEM_SET::ENTRY>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x1e5eb330, _M_const_iterators = 0x7fc9283b19b7 <wxCursor::~wxCursor()+23>, _M_version = 119360400}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >> = {<std::__cxx1998::_Vector_base<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >> = {_M_impl = {<std::allocator<PNS::ITEM_SET::ENTRY>> = {<__gnu_cxx::new_allocator<PNS::ITEM_SET::ENTRY>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >::_Vector_impl_data> = {_M_start = 0xb9057b38ddb50100, _M_finish = 0xbc9820 <vtable for wxObject@@WXU_3.1+16>, _M_end_of_storage = 0x1e5eb330}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >, std::__cxx1998::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> > >> = {_M_guaranteed_capacity = 113945264}, <No data fields>}}
#22 0x00007fc8fe49e9f7 in ROUTER_TOOL::InlineDrag (this=0x6caaab0, aEvent=...) at /build/source/pcbnew/router/router_tool.cpp:1409
        evt = 0x71125d8
        selection = <optimized out>
        item = <optimized out>
        startItem = <optimized out>
        itemsToDrag = {m_items = {<__gnu_debug::_Safe_container<std::__debug::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >, std::allocator<PNS::ITEM_SET::ENTRY>, __gnu_debug::_Safe_sequence, true>> = {<__gnu_debug::_Safe_sequence<std::__debug::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 2}, <No data fields>}, <No data fields>}, <std::__cxx1998::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >> = {<std::__cxx1998::_Vector_base<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >> = {_M_impl = {<std::allocator<PNS::ITEM_SET::ENTRY>> = {<__gnu_cxx::new_allocator<PNS::ITEM_SET::ENTRY>> = {<No data fields>}, <No data fields>}, <std::__cxx1998::_Vector_base<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >::_Vector_impl_data> = {_M_start = 0x6f979a0, _M_finish = 0x6f979b0, _M_end_of_storage = 0x6f979b0}, <No data fields>}}, <No data fields>}, <__gnu_debug::_Safe_vector<std::__debug::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> >, std::__cxx1998::vector<PNS::ITEM_SET::ENTRY, std::allocator<PNS::ITEM_SET::ENTRY> > >> = {_M_guaranteed_capacity = 1}, <No data fields>}}
        p0 = <optimized out>
        p = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = <optimized out>, x = 175103723, y = 80414043}
        dragMode = <optimized out>
        dragStarted = <optimized out>
#23 0x00007fc8fe8783c0 in std::function<int (TOOL_EVENT const&)>::operator()(TOOL_EVENT const&) const (__args#0=..., this=0x8368de0) at /nix/store/afghxjb159hbb8g02929hhggxcpyzqbl-gcc-9.3.0/include/c++/9.3.0/bits/std_function.h:683
No locals.
#24 COROUTINE<int, TOOL_EVENT const&>::callerStub (aData=<optimized out>) at /build/source/include/tool/coroutine.h:345
        args = <optimized out>
        cor = 0x8368dd0
#25 0x000000000068cd51 in make_fcontext () at /nix/store/yskh5rcgdlbb7vj25mpd4cw9bvqc4lnj-wxwidgets-3.1.3/include/wx-3.1/wx/strvararg.h:447
No symbol table info available.
#26 0xffffffffffffffff in ?? ()
No symbol table info available.
#27 0xffffffffffffffff in ?? ()
No symbol table info available.
#28 0xffffffffffffffff in ?? ()
No symbol table info available.
#29 0x00000000011655a1 in ?? ()
No symbol table info available.
#30 0xffffffffffffffff in ?? ()
No symbol table info available.
#31 0x0000ffffffffffff in ?? ()
No symbol table info available.
#32 0xff00000000000000 in ?? ()
No symbol table info available.
#33 0xffffffffffffffff in ?? ()
No symbol table info available.
#34 0xffffffffffffffff in ?? ()
No symbol table info available.
#35 0x00ffffffffffffff in ?? ()
No symbol table info available.
#36 0x0000000000000000 in ?? ()
No symbol table info available.

Steps to reproduce

haven't tried reproducing, sounds like an off-by-one error somewhere
and this wasn't the first wire i dragged...

KiCad Version

Application: KiCad

Version: 5.99.0-1d450adfdf-1, debug build

Libraries:
        wxWidgets 3.1.3
        libcurl/7.70.0 OpenSSL/1.1.1g zlib/1.2.11 libssh2/1.9.0 nghttp2/1.40.0

Platform: Linux 5.7.0-rc4 x86_64, 64 bit, Little endian, wxGTK

Build Info:
        Date: Jan  1 1970 00:00:01
        wxWidgets: 3.1.3 (wchar_t,wx containers) GTK+ 3.24
        Boost: 1.69.0
        OCC: 7.3.0
        Curl: 7.70.0
        ngspice: 31
        Compiler: GCC 9.3.0 with C++ ABI 1013

Build settings:
        KICAD_SCRIPTING=ON
        KICAD_SCRIPTING_MODULES=ON
        KICAD_SCRIPTING_PYTHON3=ON
        KICAD_SCRIPTING_WXPYTHON=ON
        KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
        KICAD_SCRIPTING_ACTION_MENU=ON
        BUILD_GITHUB_PLUGIN=ON
        KICAD_USE_OCC=ON
        KICAD_SPICE=ON
        KICAD_STDLIB_DEBUG=ON
        KICAD_SANITIZE=OFF
Edited by evils