← Back to team overview

kicad-developers team mailing list archive

Re: winbuilder debug build link fail

 

No idea.

I don't see the crash in the output.  It would be prudent to have the crash text and the
debug text in the same stream if possible, that way it might infer "sequence of events".

There's not much remaining in program execution before the end.  The only additional
printf()'s you might add are here in APP_SINGLE_TOP's


    int  OnExit()           // overload wxApp virtual
    {
        return wxApp::OnExit();
    }


before and after.  The printf()'s from PGM_BASE::destroy() are expected twice, yet we see
only one.  The second set of printf()s are expected from the static destructor, which
would fire way after APP_SINGLE_TOP::OnExit() returns, just before the program is tossed
from memory.  This static destruction is the the result of line 190 in single_top.cpp.
Since we don't see that second set of printf()s this tells us that the problem may not be
the destruction of some other non-KiCad thing, possibily from another library that I have
no knowledge of.  You might manually expand the macro at line 190 into C++ code.  That
would allow you to place some additional printf()s even closer to the end of the program.


Also, I found this:


http://stackoverflow.com/questions/5162011/what-does-this-windows-2008-debug-output-mean


Maybe a phone call to Microsoft is in order, or a change in OS version or something.  To
my knowledge you are the only KiCad user having this problem.




On 07/13/2014 05:31 AM, Jason Whiteman wrote:
> I've been busy with other work - but wanted to offer an update.
> 
> For debugging the crash - the PGM_KICAD entries do not apply since Kicad.exe itself does
> not crash - just pcbnew.    I do not see that pcbnew uses the PGM_KICAD exit routines here
> - as PGM_KICAD destroyers work fine with kicad.exe.
> 
> Granted -- not yet fully understanding the structure -- I placed debug outputs in the exit
> routines of pcbnew and also destroyers within the src/kicad/common sources (pgm_base.cpp,
> single_top.cpp, kiway.cpp).
> 
> Therefore, the results are fairly noisy at this point.  Here is the output at this point
> (note there is an unhandled win32 exception associated with this shutdown).  Although I
> have not fully studied the output, I believe I may need to add more "printf" output to
> capture the failure point:
> 
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] pcbframe.cpp: PCB_EDIT_FRAME::OnCloseWindow - Before Destroy()
> [35836] pcbframe.cpp: PCB_EDIT_FRAME::OnCloseWindow - After Destroy()
> [35836] pcbframe.cpp: PCB_EDIT_FRAME::~PCB_EDIT_FRAME() - Before destroyTools()
> [35836] pcbframe.cpp: PCB_EDIT_FRAME::~PCB_EDIT_FRAME() - Before m_RecordingMacros = -1
> [35836] pcbframe.cpp: PCB_EDIT_FRAME::~PCB_EDIT_FRAME() - Before for loop
> [35836] pcbframe.cpp: PCB_EDIT_FRAME::~PCB_EDIT_FRAME() - Before delete m_drc
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before w = event.GetWindow()
> [35836] kiway.cpp: KIWAY::player_destroy_handler - Before for loop
> [35836] kiway.cpp: KIWAY::player_destroy_handler - After for loop
> [35836] single_top.cpp: OnPgmExit() - Before Kiway.OnKiwayEnd()
> [35836] single_top.cpp: OnPgmExit() - Before saveCommonSettings()
> [35836] single_top.cpp: OnPgmExit() - Before PGM_BASE::destroy()
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before delete m_common_settings
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before m_common_settings = 0
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before delete m_pgm_checker
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before m_pgm_checker = 0
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before delete m_file_checker
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before m_file_checker = 0
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before delete m_locale
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before m_locale = 0
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before delete m_html_ctrl
> [35836] pgm_base.cpp: PGM_BASE::destroy() - Before m_html_ctrl = 0
> [35836] pgm_base.cpp: PGM_BASE::destroy() - After m_html_ctrl = 0
> [35836] single_top.cpp: OnPgmExit() - After PGM_BASE::destroy()
> [FFFFFA800783F200] WskProIRPGetAddrInfo is called.
> [bind=FFFFFA8006F43760] Binding reference count++ = 2 (status = 00000000, impersonation= 2).
> [FFFFFA80077D90F0] Request reference count++ = 3.
> [FFFFFA80077D90F0] RPC method type = 1: rpc-method succeeded, queue to rpc-pending-list.
> [FFFFFA80077D90F0] Request reference count-- = 2.
> [FFFFFA80077D90F0] WskKnrRpcComplete: rpc calls back for completion.
> [FFFFFA80077D90F0] WskKnrCompletePending: complete pending request (rpc=1).
> [FFFFFA80077D90F0] Request reference count-- = 1.
> [FFFFFA80077D90F0] Request reference count-- = 0.
> [FFFFFA80077D90F0] WskKnrCompleteRequest: rpc completion return status = 00000000
> (reply=c0000272).
> [FFFFFA80077D90F0] WskProAPIGetAddressInfo returned addrinfo: [addr=0000000000000000].
> [bind=FFFFFA8006F43760] Binding reference count-- = 1.
> [FFFFFA80077D90F0] WskKnrCompleteRequest: complete irp with IO status = c0000272.
> [FFFFFA800783F200] WskProIRPGetAddrInfo is called.
> [bind=FFFFFA8006F43760] Binding reference count++ = 2 (status = 00000000, impersonation= 2).
> [FFFFFA80077D90F0] Request reference count++ = 3.
> [FFFFFA80077D90F0] RPC method type = 1: rpc-method succeeded, queue to rpc-pending-list.
> [FFFFFA80077D90F0] Request reference count-- = 2.
> [FFFFFA80077D90F0] WskKnrRpcComplete: rpc calls back for completion.
> [FFFFFA80077D90F0] WskKnrCompletePending: complete pending request (rpc=1).
> [FFFFFA80077D90F0] Request reference count-- = 1.
> [FFFFFA80077D90F0] Request reference count-- = 0.
> [FFFFFA80077D90F0] WskKnrCompleteRequest: rpc completion return status = 00000000
> (reply=c0000272).
> [FFFFFA80077D90F0] WskProAPIGetAddressInfo returned addrinfo: [addr=0000000000000000].
> [bind=FFFFFA8006F43760] Binding reference count-- = 1.
> [FFFFFA80077D90F0] WskKnrCompleteRequest: complete irp with IO status = c0000272.
> 
> 
> On Sun, Jul 6, 2014 at 11:54 AM, Dick Hollenbeck <dick@xxxxxxxxxxx
> <mailto:dick@xxxxxxxxxxx>> wrote:
> 
>     On 07/05/2014 08:23 PM, Jason Whiteman wrote:
>     > Team,
>     >
>     >      I've been using the "printf" method to identify the cause of a windows exception on
>     > close of pcbnew.exe (release) I have seen.  However, all passed for as deep to the
>     end of
>     > the program as I could identify.
> 
>     I maintain about 6 "out of tree" build directories:
> 
>     Debug using wx3.1x
>     Debug using wx2.8.11
>     Release using wx2.8.11
>     Release using wx3.1x
>     Debug using SCRIPTING
>     Release using SCRIPTING
> 
>     This way the whole tree rarely gets recompiled.
> 
>     A fast computer helps, especially if your time is worth something.
> 
>     For this problem, I think printf() may be a sufficient troubleshooting aid.
> 
>     After the program returns from main(), the static C++ destructors run.  I was seeing
>     problems with the destruction of the wxSingleInstanceChecker objects.  There can be out of
>     sequence issues on static C++ destruction just like there can be for static construction.
>       You know, one object depends on another, and they are destroyed out of sequence.
> 
>     You might put some printf()'s in PGM_BASE::destroy(), be sure and terminate each string
>     with a newline so it gets flushed.
> 
>     Probably these printf()'s will show up twice:
> 
>     1) once during the explicit call to PGM_BASE::destroy() from PGM_KICAD::OnPgmExit() thru
>     PGM_KICAD::destroy(), or PGM_SINGLE_TOP::OnPgmExit().
> 
> 
>     2) static C++ destruction of the PGM_BASE object.  Everything is already destroyed by then
>     however.
> 
>     I'm thinking that the last printf() you see, tells that you got at least that far before
>     the segfault.
> 
> 
> 
>     > Therefore, I wanted to transition to a debug build and
>     > use debug tools to attempt to identify the source of my windows exception on pcbnew
>     exit.
> 
>     Are you starting with kicad.exe or pcbnew.exe ?
> 
> 
> 
>     >
>     >      What I've run into is a link error that mirrors a similar issue previously
>     identified
>     > by another developer on the list -- and this thread is quite dated.  Reading the
>     thread, I
>     > did not readily see how to resolve the issue.
>     >
>     > https://lists.launchpad.net/kicad-developers/msg11097.html
>     >
>     >      What I found was the issue was reproduced with recent builds if I had
>     previously set
>     > the debug level to "Release", change it to "Debug" and run "make" then I would see
>     this issue.
>     >
>     >       In an attempt to resolve the issue, I went to the ./build directory and ran a
>     > "mingw32-make.exe clean".   This did not help.  The latest attempt used SCRIPTING OFF,
>     > make clean, then the hour-long+ rebuild.
>     >
>     >      Some sample error output (without having to look at the link above):
>     >
>     > CMakeFiles\_pcbnew.dir/objects.a(pcbnewPYTHON_wrap.cxx.obj): In function
>     > `SWIG_Python_AddErrorMsg':
>     >
>     C:/kicad_build/kicad-winbuilder-3.4/build/Debug/pcbnew/scripting/pcbnewPYTHON_wrap.cxx:1020:
>     > undefined reference to `_imp___Py_RefTotal'
>     >
>     C:/kicad_build/kicad-winbuilder-3.4/build/Debug/pcbnew/scripting/pcbnewPYTHON_wrap.cxx:1020:
>     > undefined reference to `_imp___Py_RefTotal'
>     >
>     C:/kicad_build/kicad-winbuilder-3.4/build/Debug/pcbnew/scripting/pcbnewPYTHON_wrap.cxx:1024:
>     > undefined reference to `_imp___Py_RefTotal'
>     >
>     >      Is there advice on how to get the debug to work w/winbuilder?
>     >
>     > Regards,
>     > Jason
>     >
>     >
>     >
>     >
>     > _______________________________________________
>     > Mailing list: https://launchpad.net/~kicad-developers
>     > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     > Unsubscribe : https://launchpad.net/~kicad-developers
>     > More help   : https://help.launchpad.net/ListHelp
>     >
> 
> 
>     _______________________________________________
>     Mailing list: https://launchpad.net/~kicad-developers
>     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     Unsubscribe : https://launchpad.net/~kicad-developers
>     More help   : https://help.launchpad.net/ListHelp
> 
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 



Follow ups

References