← Back to team overview

kicad-developers team mailing list archive

pcbnew hang

 

Hello.

I'm seeing a pcbnew hang at 100% cpu, but only if I run it via the kicad
window. If I start pcbnew from a console window it runs fine. This is with
a few day old kicad-testing branch, Kubuntu 13.04 64bit.


Here is the stack trace:
gdb) bt
#0  0x00007f7b6a744445 in __xstat64 () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f7b6bbc83be in wxStat(wchar_t const*, stat*) () from
/usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#2  0x00007f7b6bbca3ab in wxDirExists(wchar_t const*) () from
/usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#3  0x00007f7b6bc147bc in wxDirData::Read(wxString*) () from
/usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#4  0x00007f7b6bbba9b6 in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#5  0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
...
#76 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#77 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#78 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#79 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#80 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#81 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#82 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#83 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#84 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#85 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#86 0x00007f7b6bbbabdc in wxDir::Traverse(wxDirTraverser&, wxString const&,
int) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#87 0x00007f7b6bbbad5a in wxDir::GetAllFiles(wxString const&,
wxArrayString*, wxString const&, int) ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#88 0x00000000008301e4 in EDA_APP::OnInit (this=0x2d98a40) at
/home/cmorgan/hdd/kicad/pcbnew/pcbnew.cpp:202
#89 0x0000000000a00b4f in wxAppConsole::CallOnInit (this=0x2d98a40) at
/usr/include/wx-2.8/wx/app.h:76
#90 0x00007f7b6bbd9644 in wxEntry(int&, wchar_t**) () from
/usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
#91 0x000000000082f996 in main (argc=2, argv=0x7fffee182f08) at
/home/cmorgan/hdd/kicad/pcbnew/pcbnew.cpp:88


I put a breakpoint on the line after the call to wxDir::GetAllFiles() in
EDA_APP::OnInit() and it doesn't look like the GetAllFiles() call ever
returns.

I don't see any outstanding bugs and the folder being passed into
wxDir::GetAllFiles() seems perfectly fine.

(gdb) frame 88
#88 0x00000000008301e4 in EDA_APP::OnInit (this=0x2d98a40) at
/home/cmorgan/hdd/kicad/pcbnew/pcbnew.cpp:202
202                 unsigned cnt = wxDir::GetAllFiles(
GetLibraryPathList()[i], &tmp, wxT( "*.mod" ) );
(gdb) print GetLibraryPathList()[i]
$1 = (wxString &) @0x2def560: {<wxStringBase> = {static npos =
18446744073709551615,
    m_pchData = 0x3398298 L"/home/cmorgan/hdd/Downloads"}, <No data fields>}
(gdb) print i
$2 = 0
(gdb)


Ideas?

Chris

Follow ups