[Pkg-electronics-devel] Bug#895008: kicad: can't start pcbnew

Aurelien Jacobs aurel at gnuage.org
Sat Apr 7 21:37:25 UTC 2018


On Sat, Apr 07, 2018 at 09:33:08PM +0200, Carsten Schoenert wrote:
> Hi,
> 
> please test a rebuild of KiCad 5.0.05.0.0~rc1+dfsg1+20180318 which is
> using libwxgtk3.0-gtk3-dev to get a proper GTK3 bindings.

I've tested this new build, and I can now start pcbnew including with
latest version python-wxgtk3.0, so this seems to fix the issue. Thanks !

Now this has uncovered another GTK+3 related issue for me in pcbnew.
If I enable "Modern Toolset (Accelerated)" in the Preferences menu,
pcbnew segfaults. It looks like it might be related to using
wxGLCanvasX11 (ie. calling libGLX and libX11) even though this GTK+3
build is now using Wayland instead of X11.

Here is the backtrace I got:

Thread 1 "kicad" received signal SIGSEGV, Segmentation fault.
0x00007ffff23aac49 in XQueryExtension () from /usr/lib/x86_64-linux-gnu/libX11.so.6
(gdb) disassemble $pc-32,$pc+32
Dump of assembler code from 0x7ffff23aac29 to 0x7ffff23aac69:
   0x00007ffff23aac29 <XQueryExtension+25>:	sub    $0x38,%rsp
   0x00007ffff23aac2d <XQueryExtension+29>:	mov    %fs:0x28,%rax
   0x00007ffff23aac36 <XQueryExtension+38>:	mov    %rax,0x28(%rsp)
   0x00007ffff23aac3b <XQueryExtension+43>:	xor    %eax,%eax
   0x00007ffff23aac3d <XQueryExtension+45>:	mov    0x968(%rdi),%rax
   0x00007ffff23aac44 <XQueryExtension+52>:	test   %rax,%rax
   0x00007ffff23aac47 <XQueryExtension+55>:	je     0x7ffff23aac4b <XQueryExtension+59>
=> 0x00007ffff23aac49 <XQueryExtension+57>:	callq  *(%rax)
   0x00007ffff23aac4b <XQueryExtension+59>:	mov    $0x8,%edx
   0x00007ffff23aac50 <XQueryExtension+64>:	mov    $0x62,%esi
   0x00007ffff23aac55 <XQueryExtension+69>:	mov    %rbx,%rdi
   0x00007ffff23aac58 <XQueryExtension+72>:	callq  0x7ffff238db90 <_XGetRequest at plt>
   0x00007ffff23aac5d <XQueryExtension+77>:	test   %rbp,%rbp
   0x00007ffff23aac60 <XQueryExtension+80>:	mov    %rax,%r15
   0x00007ffff23aac63 <XQueryExtension+83>:	je     0x7ffff23aad10 <XQueryExtension+256>
End of assembler dump.
(gdb) bt
#0  0x00007ffff23aac49 in XQueryExtension () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#1  0x00007fffef2ea3b2 in  () at /usr/lib/x86_64-linux-gnu/libGLX.so.0
#2  0x00007fffef2e6415 in glXQueryVersion () at /usr/lib/x86_64-linux-gnu/libGLX.so.0
#3  0x00007ffff7bcfe95 in wxGLCanvasX11::GetGLXVersion() () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_gl-3.0.so.0
#4  0x00007ffff7bd0535 in wxGLCanvasX11::ConvertWXAttrsToGL(int const*, int*, unsigned long) () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_gl-3.0.so.0
#5  0x00007ffff7bd0d68 in wxGLCanvasX11::InitXVisualInfo(int const*, __GLXFBConfigRec***, XVisualInfo**) () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_gl-3.0.so.0
#6  0x00007ffff7bd1e70 in wxGLCanvas::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&, int const*, wxPalette const&) () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_gl-3.0.so.0
#7  0x00007ffff7bd2013 in wxGLCanvas::wxGLCanvas(wxWindow*, int, int const*, wxPoint const&, wxSize const&, long, wxString const&, wxPalette const&) () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_gl-3.0.so.0
#8  0x00007fffd1aedbd9 in HIDPI_GL_CANVAS::HIDPI_GL_CANVAS(wxWindow*, int, int const*, wxPoint const&, wxSize const&, long, wxString const&, wxPalette const&) (this=0x5555585c4ea0, parent=<optimized out>, id=<optimized out>, attribList=<optimized out>, pos=..., size=..., style=8192, name=..., palette=...) at ./common/gal/hidpi_gl_canvas.cpp:38
#9  0x00007fffd1b09285 in KIGFX::OPENGL_GAL::OPENGL_GAL(KIGFX::GAL_DISPLAY_OPTIONS&, wxWindow*, wxEvtHandler*, wxEvtHandler*, wxString const&) (this=0x5555585c4bb0, aDisplayOptions=..., aParent=0x555557d7f120, aMouseListener=0x555557d7f120, aPaintListener=0x555557d7f120, aName=...) at ./common/gal/opengl/opengl_gal.cpp:74
#10 0x00007fffd1ae4b84 in EDA_DRAW_PANEL_GAL::SwitchBackend(EDA_DRAW_PANEL_GAL::GAL_TYPE) (this=this at entry=0x555557d7f120, aGalType=EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL) at ./common/draw_panel_gal.cpp:350
#11 0x00007fffd189a01e in PCB_DRAW_PANEL_GAL::SwitchBackend(EDA_DRAW_PANEL_GAL::GAL_TYPE) (this=0x555557d7f120, aGalType=<optimized out>) at ./pcbnew/pcb_draw_panel_gal.cpp:396
#12 0x00007fffd19e997f in EDA_DRAW_FRAME::SwitchCanvas(EDA_DRAW_PANEL_GAL::GAL_TYPE) (this=0x555557d652b0, aCanvasType=EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL) at ./common/draw_frame.cpp:1195
#13 0x00007fffd147d249 in PCB_EDIT_FRAME::OnSwitchCanvas(wxCommandEvent&) (this=0x555557d652b0, aEvent=...) at ./pcbnew/pcb_edit_frame.cpp:1215
#14 0x00007ffff654a8ce in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#15 0x00007ffff654a9d3 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#16 0x00007ffff654ad9b in wxEvtHandler::TryHereOnly(wxEvent&) () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#17 0x00007fffd1a0e1eb in EDA_BASE_FRAME::ProcessEvent(wxEvent&) (this=0x555557d652b0, aEvent=...) at ./common/eda_base_frame.cpp:191
#18 0x00007ffff654ab93 in wxEvtHandler::DoTryChain(wxEvent&) () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#19 0x00007ffff654ae85 in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#20 0x00007ffff6e88c6b in wxWindowBase::TryAfter(wxEvent&) () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_core-3.0.so.0
#21 0x00007ffff654abe7 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#22 0x00007ffff6e3b51b in wxMenuBase::SendEvent(int, int) () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_core-3.0.so.0
#23 0x00007ffff6d2921b in  () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_core-3.0.so.0
#24 0x00007ffff26bef6d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#25 0x00007ffff26d1d3e in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#26 0x00007ffff26da3f5 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#27 0x00007ffff26dae0f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#28 0x00007ffff2f70a9c in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#29 0x00007ffff26bef6d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#30 0x00007ffff26d1d3e in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007ffff26d9d8f in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#32 0x00007ffff26dae0f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#33 0x00007ffff2cf8bb8 in gtk_accel_group_activate () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x00007ffff2cfa44d in gtk_accel_groups_activate () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#35 0x00007ffff2f92dd9 in gtk_window_activate_key () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#36 0x00007ffff6cc40fb in  () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_core-3.0.so.0
#37 0x00007ffff2e27e1b in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#38 0x00007ffff26bef6d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x00007ffff26d1d3e in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x00007ffff26d9d8f in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#41 0x00007ffff26dae0f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#42 0x00007ffff2f6f254 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#43 0x00007ffff2e24f5f in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x00007ffff2e26f68 in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#45 0x00007ffff29399b5 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#46 0x00007ffff2994302 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#47 0x00007ffff1c3e287 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007ffff1c3e4c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007ffff1c3e7d2 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007ffff2e26045 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#51 0x00007ffff6cb0cc5 in wxGUIEventLoop::DoRun() () at /usr/lib/x86_64-linux-gnu/libwx_gtk3u_core-3.0.so.0
#52 0x00007ffff6406ea3 in wxEventLoopBase::Run() () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#53 0x00007ffff63ce4b6 in wxAppConsoleBase::MainLoop() () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#54 0x00005555555c6d09 in APP_KICAD::OnRun() (this=<optimized out>) at ./kicad/kicad.cpp:233
#55 0x00007ffff6458ef9 in wxEntry(int&, wchar_t**) () at /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#56 0x00005555555ae0a2 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./kicad/kicad.cpp:265

Regards.
--
Aurel



More information about the Pkg-electronics-devel mailing list