Pcbnew segfaults when attempting to route differential pair with inconsistent naming
Bug #1428245 reported by
Jeppe Johansen
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Critical
|
Tomasz Wlostowski |
Bug Description
Trying to route a differential pair with incorrect net names will make pcbnew crash immediately.
Naming a net "A+" and trying to route it as a differential pair or do length matching will make it crash.
Related branches
Changed in kicad: | |
assignee: | nobody → Tomasz Wlostowski (twlostow) |
Changed in kicad: | |
status: | Confirmed → Fix Committed |
Changed in kicad: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Can confirm on r5473. The attached PCB displays this behaviour. If you try to diff-pair route GND, then it pops up a dialog box telling you it isn't a differential pair. But if you click on USBD+, for which their is no corresponding USBD-, you get a segfault:
Program received signal SIGSEGV, Segmentation fault. PAIR_PLACER: :findDpPrimitiv ePair (this=this@ entry=0x1f23b00 , aP=..., aItem=aItem@ entry=0x20c4800 , aPair=...) sources/ kicad/product/ pcbnew/ router/ pns_diff_ pair_placer. cpp:494
0x00007fffea8517d4 in PNS_DIFF_
at /home/blair/
494 refNet = netP;
(gdb) bt
#0 0x00007fffea8517d4 in PNS_DIFF_ PAIR_PLACER: :findDpPrimitiv ePair (this=this@ entry=0x1f23b00 , aP=..., aItem=aItem@ entry=0x20c4800 , aPair=...) sources/ kicad/product/ pcbnew/ router/ pns_diff_ pair_placer. cpp:494
at /home/blair/
#1 0x00007fffea85348a in PNS_DIFF_ PAIR_PLACER: :Start (this=0x1f23b00, aP=..., aStartItem= 0x20c4800) at /home/blair/ sources/ kicad/product/ pcbnew/ router/ pns_diff_ pair_placer. cpp:573
#2 0x00007fffea83daca in PNS_ROUTER: :StartRouting (this=0x1db2a60, aP=..., aStartItem= 0x20c4800, aLayer= aLayer@ entry=0) at /home/blair/ sources/ kicad/product/ pcbnew/ router/ pns_router. cpp:528
#3 0x00007fffea82fd94 in ROUTER_ TOOL::prepareIn teractive (this=this@ entry=0x2c66c70 ) at /home/blair/ sources/ kicad/product/ pcbnew/ router/ router_ tool.cpp: 453
#4 0x00007fffea83365c in ROUTER_ TOOL::performRo uting (this=this@ entry=0x2c66c70 ) at /home/blair/ sources/ kicad/product/ pcbnew/ router/ router_ tool.cpp: 494
#5 0x00007fffea83481f in ROUTER_ TOOL::mainLoop (this=this@ entry=0x2c66c70 , aMode=aMode@ entry=PNS_ MODE_ROUTE_ DIFF_PAIR) at /home/blair/ sources/ kicad/product/ pcbnew/ router/ router_ tool.cpp: 645
#6 0x00007fffea834e48 in ROUTER_ TOOL::RouteDiff Pair (this=0x2c66c70, aEvent=...) at /home/blair/ sources/ kicad/product/ pcbnew/ router/ router_ tool.cpp: 601
#7 0x00007fffea977bc1 in operator() (aA=..., this=0x20c4890) at /home/blair/ sources/ kicad/product/ include/ tool/delegate. h:58
#8 COROUTINE<int, TOOL_EVENT const&>::callerStub (aData=34359440) at /home/blair/ sources/ kicad/product/ include/ tool/coroutine. h:214 libboost_ context. so.1.57. 0
#9 0x00007fffe8008731 in make_fcontext () from /usr/lib/
#10 0x0000000000000000 in ?? ()
------- ------- ------- ------- ------- ------- ------- ------- ------- ------- -
Application: pcbnew wchar_t, compiler with C++ ABI 1002,GCC 4.9.2,wx containers, compatible with 2.8)
USE_WX_ GRAPHICS_ CONTEXT= OFF
USE_WX_ OVERLAY= OFF
KICAD_ SCRIPTING= ON
KICAD_ SCRIPTING_ MODULES= ON
KICAD_ SCRIPTING_ WXPYTHON= ON
USE_FP_ LIB_TABLE= HARD_CODED_ ON
BUILD_ GITHUB_ PLUGIN= ON
KICAD_ USE_WEBKIT= ON
Version: (2015-03-04 BZR 5473)-product Debug build
wxWidgets: Version 3.0.2 (debug,
Platform: Linux 3.18.6-1-ARCH x86_64, 64 bit, Little endian, wxGTK
Boost version: 1.57.0