Here's another trace, I think it's the same bug. I didn't drag a via, but it was shoved when there wasn't enough space.
Thread 1 "kicad" received signal SIGSEGV, Segmentation fault. 0x000000690000006d in ?? () (gdb) bt #0 0x000000690000006d in () #1 0x00007fffb05a60f2 in PNS::LINE::LINE(PNS::VIA const&) (aVia=..., this=0x55555b271780) at /home/ondra/packages/kicad-git/src/kicad-git/pcbnew/router/pns_shove.cpp:1367 #2 0x00007fffb05a60f2 in PNS::SHOVE::ShoveDraggingVia(PNS::VIA*, VECTOR2<int> const&, PNS::VIA**) (this= 0x55556889ada0, aVia=<optimized out>, aWhere=..., aNewVia=aNewVia@entry=0x55555b271b40) at /home/ondra/packages/kicad-git/src/kicad-git/pcbnew/router/pns_shove.cpp:1338 #3 0x00007fffb0561896 in PNS::DRAGGER::dragShove(VECTOR2<int> const&) (this=0x555567bd4800, aP=...) at /home/ondra/packages/kicad-git/src/kicad-git/pcbnew/router/pns_dragger.cpp:295 #4 0x00007fffb051f977 in PNS::ROUTER::moveDragging(VECTOR2<int> const&, PNS::ITEM*) (this=0x555568b73cf0, aP=..., aEndItem=<optimized out>) at /usr/include/c++/9.1.0/bits/unique_ptr.h:357 #5 0x00007fffb052c8d0 in ROUTER_TOOL::performDragging(int) (this=<optimized out>, aMode=<optimized out>) at /home/ondra/packages/kicad-git/src/kicad-git/pcbnew/router/router_tool.cpp:1021 #6 0x00007fffb052fd37 in ROUTER_TOOL::MainLoop(TOOL_EVENT const&) (this=<optimized out>, aEvent=...) at /home/ondra/packages/kicad-git/src/kicad-git/pcbnew/router/router_tool.cpp:948 #7 0x00007fffb0743680 in std::function<int (TOOL_EVENT const&)>::operator()(TOOL_EVENT const&) const (__args#0=..., this=0x5555631f2f68) at /usr/include/c++/9.1.0/bits/std_function.h:685 #8 0x00007fffb0743680 in COROUTINE<int, TOOL_EVENT const&>::callerStub(long) (aData=<optimized out>) at /home/ondra/packages/kicad-git/src/kicad-git/include/tool/coroutine.h:335 #9 0x00005555556d2a41 in make_fcontext ()
Here's another trace, I think it's the same bug. I didn't drag a via, but it was shoved when there wasn't enough space.
Thread 1 "kicad" received signal SIGSEGV, Segmentation fault. :LINE(PNS: :VIA const&) (aVia=..., this=0x55555b27 1780) packages/ kicad-git/ src/kicad- git/pcbnew/ router/ pns_shove. cpp:1367 :ShoveDraggingV ia(PNS: :VIA*, VECTOR2<int> const&, PNS::VIA**) (this= aNewVia@ entry=0x55555b2 71b40) packages/ kicad-git/ src/kicad- git/pcbnew/ router/ pns_shove. cpp:1338 :dragShove( VECTOR2< int> const&) (this=0x555567b d4800, aP=...) packages/ kicad-git/ src/kicad- git/pcbnew/ router/ pns_dragger. cpp:295 :moveDragging( VECTOR2< int> const&, PNS::ITEM*) (this=0x555568b 73cf0, aP=..., aEndItem=<optimized out>) c++/9.1. 0/bits/ unique_ ptr.h:357 TOOL::performDr agging( int) (this=<optimized out>, aMode=<optimized out>) packages/ kicad-git/ src/kicad- git/pcbnew/ router/ router_ tool.cpp: 1021 TOOL::MainLoop( TOOL_EVENT const&) (this=<optimized out>, aEvent=...) packages/ kicad-git/ src/kicad- git/pcbnew/ router/ router_ tool.cpp: 948 >::operator( )(TOOL_ EVENT const&) const (__args#0=..., this=0x5555631f 2f68) c++/9.1. 0/bits/ std_function. h:685 ::callerStub( long) (aData=<optimized out>) packages/ kicad-git/ src/kicad- git/include/ tool/coroutine. h:335
0x000000690000006d in ?? ()
(gdb) bt
#0 0x000000690000006d in ()
#1 0x00007fffb05a60f2 in PNS::LINE:
at /home/ondra/
#2 0x00007fffb05a60f2 in PNS::SHOVE:
0x55556889ada0, aVia=<optimized out>, aWhere=..., aNewVia=
at /home/ondra/
#3 0x00007fffb0561896 in PNS::DRAGGER:
at /home/ondra/
#4 0x00007fffb051f977 in PNS::ROUTER:
at /usr/include/
#5 0x00007fffb052c8d0 in ROUTER_
at /home/ondra/
#6 0x00007fffb052fd37 in ROUTER_
at /home/ondra/
#7 0x00007fffb0743680 in std::function<int (TOOL_EVENT const&)
at /usr/include/
#8 0x00007fffb0743680 in COROUTINE<int, TOOL_EVENT const&>
at /home/ondra/
#9 0x00005555556d2a41 in make_fcontext ()