← Back to team overview

kicad-developers team mailing list archive

Re: OSX: Pin Table crashes Library Editor

 

Yep, that’s exactly the crash that I debugged.
It is a simple "null-pointer not checked” issue… which in this case is present at many places in the OS X wxWidgets code.


Regards,
Bernhard

> On 15 Jun 2015, at 18:48, Andy Peters <devel@xxxxxxxxx> wrote:
> 
>> 
>> On Jun 14, 2015, at 12:41 PM, Bernhard Stegmaier <stegmaier@xxxxxxxxxxxxx> wrote:
>> 
>> Hi,
>> 
>> FYI… I guess this is only OS X related.
>> 
>> Yesterday I wanted to use the Pin Table for the first time and it always crashes the Library Editor.
>> After some debugging I am pretty sure that this is a bug in the OS X implementation of wxDataViewCtrl if using wx[V|H]SCROLL when creating it.
>> Did the Pin Table ever work for somebody on OS X (I guess it never did)?
>> 
>> I already filed a bug report for wxWidgets (still under moderation, so it doesn’t show up yet).
>> I don’t know how long this will take, so attached a fix/workaround that did it for me (for anyone interested, maybe Adam?).
>> 
>> The only possible workaround in KiCad seems to be to remove the wxVSCROLL from
>> m_Pins = new wxDataViewCtrl( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxDV_HORIZ_RULES|wxDV_MULTIPLE|wxDV_ROW_LINES|wxDV_VERT_RULES|wxVSCROLL ); 
>> In my tests OS X doesn’t seem to need this (scroll bars are dynamically shown when needed even without this flag).
>> But, I don’t know about other platforms and this piece of code probably can’t be #ifdef’d because this is generated code from wxFormBuilder
> 
> It crashes on my Macs, both 10.10 and 10.9, using Adam’s nightlies. I just fired up BZR 5694 and it crashes when you try to display the pin table.
> 
> Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
> Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
> 
> VM Regions Near 0:
> --> 
>    __TEXT                 000000010b438000-000000010b531000 [  996K] r-x/rwx SM=COW /Applications/Kicad/kicad.app/Contents/MacOS/kicad
> 
> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
> 0   libwx_osx_cocoau_core-3.0.0.dylib	0x000000010b971bcb wxWindow::DoGetClientSize(int*, int*) const + 43
> 1   libwx_osx_cocoau_core-3.0.0.dylib	0x000000010b9703f0 wxWindow::MacCreateScrollBars(long) + 208
> 2   libwx_osx_cocoau_core-3.0.0.dylib	0x000000010b96fa31 wxWindow::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&) + 289
> 3   libwx_osx_cocoau_core-3.0.0.dylib	0x000000010b9bbc5b wxControl::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxValidator const&, wxString const&) + 27
> 4   libwx_osx_cocoau_adv-3.0.0.dylib	0x000000010b70aa1a wxDataViewCtrl::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxValidator const&, wxString const&) + 90
> 5   _eeschema.kiface              	0x0000000116fd8bc4 wxDataViewCtrl::wxDataViewCtrl(wxWindow*, int, wxPoint const&, wxSize const&, long, wxValidator const&, wxString const&) + 148
> 6   _eeschema.kiface              	0x0000000116fd8407 DIALOG_LIB_EDIT_PIN_TABLE_BASE::DIALOG_LIB_EDIT_PIN_TABLE_BASE(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long) + 439
> 7   _eeschema.kiface              	0x0000000116fd378e DIALOG_LIB_EDIT_PIN_TABLE::DIALOG_LIB_EDIT_PIN_TABLE(wxWindow*, LIB_PART&) + 206
> 8   _eeschema.kiface              	0x000000011704dfeb LIB_EDIT_FRAME::OnOpenPinTable(wxCommandEvent&) + 59
> 9   libwx_baseu-3.0.0.dylib       	0x000000010c1ea3c0 wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) + 240
> 10  libwx_baseu-3.0.0.dylib       	0x000000010c1eb7cb wxEvtHandler::ProcessEvent(wxEvent&) + 283
> 11  _eeschema.kiface              	0x00000001171ca05c EDA_BASE_FRAME::ProcessEvent(wxEvent&) + 28
> 12  libwx_baseu-3.0.0.dylib       	0x000000010c1eb8c4 wxEvtHandler::ProcessEventLocally(wxEvent&) + 164
> 13  libwx_baseu-3.0.0.dylib       	0x000000010c1eb76e wxEvtHandler::ProcessEvent(wxEvent&) + 190
> 14  libwx_osx_cocoau_core-3.0.0.dylib	0x000000010bb91bf4 wxWindowBase::TryAfter(wxEvent&) + 228
> 15  libwx_baseu-3.0.0.dylib       	0x000000010c1eb7f4 wxEvtHandler::ProcessEvent(wxEvent&) + 324
> 16  libwx_osx_cocoau_aui-3.0.0.dylib	0x000000010b5e9aba wxAuiToolBar::OnLeftUp(wxMouseEvent&) + 810
> 17  libwx_baseu-3.0.0.dylib       	0x000000010c1ea3c0 wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) + 240
> 18  libwx_baseu-3.0.0.dylib       	0x000000010c1eb87d wxEvtHandler::ProcessEventLocally(wxEvent&) + 93
> 19  libwx_baseu-3.0.0.dylib       	0x000000010c1eb76e wxEvtHandler::ProcessEvent(wxEvent&) + 190
> 20  libwx_baseu-3.0.0.dylib       	0x000000010c1ebb7f wxEvtHandler::SafelyProcessEvent(wxEvent&) + 15
> 21  libwx_osx_cocoau_core-3.0.0.dylib	0x000000010ba568b4 wxWidgetCocoaImpl::DoHandleMouseEvent(NSEvent*) + 100
> 22  libwx_osx_cocoau_core-3.0.0.dylib	0x000000010ba3fd75 -[NSWindow(wxNSWindowSupport) WX_filterSendEvent:] + 149
> 23  libwx_osx_cocoau_core-3.0.0.dylib	0x000000010ba3fdc0 -[wxNSWindow sendEvent:] + 32
> 24  com.apple.AppKit              	0x00007fff90170312 -[NSApplication sendEvent:] + 2504
> 25  libwx_osx_cocoau_core-3.0.0.dylib	0x000000010b95fa48 -[wxNSApplication sendEvent:] + 136
> 26  com.apple.AppKit              	0x00007fff90099c68 -[NSApplication run] + 711
> 27  libwx_osx_cocoau_core-3.0.0.dylib	0x000000010ba338ae wxGUIEventLoop::OSXDoRun() + 110
> 28  libwx_baseu-3.0.0.dylib       	0x000000010c1b6104 wxCFEventLoop::DoRun() + 52
> 29  libwx_baseu-3.0.0.dylib       	0x000000010c0c4075 wxEventLoopBase::Run() + 165
> 30  libwx_baseu-3.0.0.dylib       	0x000000010c076681 wxAppConsoleBase::MainLoop() + 209
> 31  libwx_osx_cocoau_core-3.0.0.dylib	0x000000010b9b94ea wxApp::OnRun() + 26
> 32  org.kicad-eda.kicad           	0x000000010b454009 APP_KICAD::OnRun() + 25
> 33  libwx_baseu-3.0.0.dylib       	0x000000010c114de7 wxEntry(int&, wchar_t**) + 71
> 34  org.kicad-eda.kicad           	0x000000010b453940 main + 48
> 35  org.kicad-eda.kicad           	0x000000010b43da14 start + 52
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers <https://launchpad.net/~kicad-developers>
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> Unsubscribe : https://launchpad.net/~kicad-developers <https://launchpad.net/~kicad-developers>
> More help   : https://help.launchpad.net/ListHelp <https://help.launchpad.net/ListHelp>

References