Crash in PNS::LOGGER::Log (was: Crash while routing differential pair and switching layers)
Description
Still using the project in issue #8514 (closed), I got a third crash.
Here is the backtrace:
#0 boost::uuids::to_string[abi:cxx11](boost::uuids::uuid const&) (u=...) at /usr/include/boost/uuid/uuid_io.hpp:156
#1 KIID::AsString() const (this=0x69e7d1006a47090) at /home/dag/src/c64/resid/kicad/common/kiid.cpp:220
#2 0x00007f97cf53eb03 in PNS::LOGGER::Log(PNS::LOGGER::EVENT_TYPE, VECTOR2<int>, PNS::ITEM const*) [clone .isra.0] (this=0x56151138f330, evt=evt@entry=PNS::LOGGER::EVT_MOVE, item=item@entry=0x561510ecd630, pos=..., pos=...)
at /home/dag/src/c64/resid/kicad/pcbnew/router/pns_logger.cpp:74
#3 0x00007f97cf094342 in PNS::ROUTER::Move(VECTOR2<int> const&, PNS::ITEM*) (this=0x56150eeb19d0, aP=..., endItem=0x561510ecd630) at /home/dag/src/c64/resid/kicad/pcbnew/router/pns_router.cpp:412
#4 0x00007f97cf0668b4 in ROUTER_TOOL::handleLayerSwitch(TOOL_EVENT const&, bool) (this=<optimized out>, aEvent=..., aForceVia=<optimized out>) at /home/dag/src/c64/resid/kicad/pcbnew/router/router_tool.cpp:992
#5 0x00007f97cf20aed0 in std::function<int (TOOL_EVENT const&)>::operator()(TOOL_EVENT const&) const (__args#0=<optimized out>, this=0x561510be2090) at /usr/include/c++/11/bits/std_function.h:560
#6 COROUTINE<int, TOOL_EVENT const&>::callerStub(long) (aData=<optimized out>) at /home/dag/src/c64/resid/kicad/include/tool/coroutine.h:428
#7 0x00007f97cf55fad1 in make_fcontext () at /home/dag/src/c64/resid/kicad/thirdparty/libcontext/libcontext.cpp:715
#8 0x000056150c8e9900 in ()
#9 0x00007f97ce96fdcd in wxScopedCharTypeBuffer<wchar_t>::GetNullData() () at /usr/include/wx-3.0/wx/buffer.h:182
#10 wxScopedCharTypeBuffer<wchar_t>::DecRef() (this=0x56150f7994f8) at /usr/include/wx-3.0/wx/buffer.h:198
#11 wxScopedCharTypeBuffer<wchar_t>::~wxScopedCharTypeBuffer() (this=0x56150f7994f8, this=<optimized out>) at /usr/include/wx-3.0/wx/buffer.h:127
#12 wxString::wxString(char const*) (this=0x56150f7995c0, psz=<optimized out>, this=<optimized out>, psz=<optimized out>) at /usr/include/wx-3.0/wx/string.h:1242
#13 0x00007f9802ea2a70 in g_cclosure_marshal_VOID__VOIDv () at /lib64/libgobject-2.0.so.0
#14 0x0000000000000001 in ()
#15 0x00007f9802ea6be0 in g_cclosure_marshal_VOID__VOID () at /lib64/libgobject-2.0.so.0
#16 0x000056150efc6fc0 in ()
#17 0x0000000000000000 in ()
Steps to reproduce
This time, I removed all the track segments for the differential pair shown in #8538 (closed), before rerouting from the same microvia. When the rerouting was completed, I believe I pressed "+" (don't ask me why), and got the crash.
I did an "export TOM_EXTRA_DEBUG=1" before compiling, in case this should make any difference.
KiCad Version
Application: KiCad
Version: (5.99.0-10830-g25678ee00d), release build
Libraries:
wxWidgets 3.0.5
libcurl/7.76.1 OpenSSL/1.1.1k-fips zlib/1.2.11 brotli/1.0.9 libidn2/2.3.1 libpsl/0.21.1 (+libidn2/2.3.0) libssh/0.9.5/openssl/zlib nghttp2/1.43.0
Platform: Linux 5.12.8-300.fc34.x86_64 x86_64, 64 bit, Little endian, wxGTK, cinnamon, x11
Build Info:
Date: Jun 4 2021 07:41:14
wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.75.0
OCC: 7.5.0
Curl: 7.76.1
ngspice: 34
Compiler: GCC 11.1.1 with C++ ABI 1016
Build settings:
KICAD_USE_OCC=ON
KICAD_SPICE=ON
Edited by Jeff Young