Vadim Zeitlin wrote:
> On Tue, 31 Dec 2013 10:30:57 -0800 Robin Dunn wrote:
>
> RD> There are some wxPython users who are having problems with wxPython 3.0
> RD> on XP. It is crashing when certain widgets are used, but simple windows
> RD> without those widgets work fine. They had no problems like this with
> RD> the 2.9.5 release.
> RD>
> RD> I'll try to get an XP VM setup for development again,
>
> This doesn't look like the best way to celebrate New Year :-/ FWIW I have
> one (and even a few),
I found an old VM I was able to update without too much hassle.
> but I'm not sure if wxPython uses our DLL binaries,
> i.e. if I already have the symbols to debug this or if I need to get them
> from somewhere else?
wxPython includes its own builds of the wx DLLs with some slight
modifications of setup.h, so I don't think it would be compatible with
the stock DLLs.
>
> RD> but in the meantime one user did this analysis of the msvcr90.dll
> RD> addresses reported in the backtrace reported by another user:
> RD>
https://groups.google.com/d/msg/wxpython-users/5NFI-D6T1aQ/eXug-f1GwfcJ
> RD> It seems to indicate that the problem is happening when allocating
> RD> memory for TLS?
> RD>
> RD> Does anyone know of any changes between 2.9.5 and 3.0 that could have
> RD> caused a problem like this?
>
> There have been no changes in this area since 2.9.5 AFAIR and the only
> problem with the TLS is
http://trac.wxwidgets.org/ticket/13116 which is
> perfectly real and serious but which is not new at all.
>
Here is one of the call stacks at the time of the crash. Setting
wxUSE_COMPILER_TLS to zero appears to have taken care of the problem,
however it is still very puzzling why it worked okay in wxPython 2.9.5
and earlier.
wxbase30ud_vc90.dll!wxThreadSpecificInfo::Get() Line 58 + 0xc bytes C++
wxbase30ud_vc90.dll!wxTranslations::GetUntranslatedString(const
wxString & str={...}) Line 1614 + 0x5 bytes C++
wxmsw30ud_core_vc90.dll!wxGetTranslation(const wxString & str={...},
const wxString & domain={...}) Line 254 + 0xa bytes C++
wxmsw30ud_core_vc90.dll!CompareAccelString(const wxString &
str={...}, const char * accel=0x03191c78) Line 124 + 0xa2 bytes C++
wxmsw30ud_core_vc90.dll!wxAcceleratorEntry::ParseAccel(const wxString
& text={...}, int * flagsOut=0x0021ded8, int * keyOut=0x0021dea8) Line
182 + 0xe bytes C++
wxmsw30ud_core_vc90.dll!wxAcceleratorEntry::Create(const wxString &
str={...}) Line 293 + 0x11 bytes C++
wxmsw30ud_core_vc90.dll!wxMenu::UpdateAccel(wxMenuItem *
item=0x011d8808) Line 374 + 0x2a bytes C++
wxmsw30ud_core_vc90.dll!wxMenu::DoInsertOrAppend(wxMenuItem *
pItem=0x011d8808, unsigned int pos=4294967295) Line 473 C++
wxmsw30ud_core_vc90.dll!wxMenu::DoAppend(wxMenuItem *
item=0x011d8808) Line 772 + 0x1e bytes C++
wxmsw30ud_core_vc90.dll!wxMenuBase::Append(int itemid=5004, const
wxString & text={...}, const wxString & help={...}, wxItemKind
kind=wxITEM_NORMAL) Line 68 C++
_core__d.pyd!_wrap_Menu_Append(_object * __formal=0x00000000, _object
* args=0x010fa860, _object * kwargs=0x0120a818) Line 48034 + 0x19 bytes C++
python27_d.dll!PyCFunction_Call(_object * func=0x01ce29b8, _object *
arg=0x010fa860, _object * kw=0x0120a818) Line 85 + 0xf bytes C
python27_d.dll!ext_do_call(_object * func=0x01ce29b8, _object * * *
pp_stack=0x0021e3a8, int flags=3, int na=0, int nk=0) Line 4333 C
python27_d.dll!PyEval_EvalFrameEx(_frame * f=0x011d72e8, int
throwflag=0) Line 2708 C
python27_d.dll!PyEval_EvalCodeEx(PyCodeObject * co=0x0133e568,
_object * globals=0x011d72e8, _object * locals=0x00000000, _object * *
args=0x011d6fec, int argcount=4, _object * * kws=0x011d6ffc, int
kwcount=0, _object * * defs=0x00000000, int defcount=0, _object *
closure=0x00000000) Line 3253 + 0xb bytes C
python27_d.dll!fast_function(_object * func=0x0133e568, _object * * *
pp_stack=0x0021e554, int n=4, int na=4, int nk=0) Line 4120 + 0x35 bytes C
python27_d.dll!call_function(_object * * * pp_stack=0x0021e554, int
oparg=0) Line 4042 + 0xf bytes C
python27_d.dll!PyEval_EvalFrameEx(_frame * f=0x011d6ea0, int
throwflag=0) Line 2668 C
python27_d.dll!fast_function(_object * func=0x01064e08, _object * * *
pp_stack=0x0021e6ac, int n=1, int na=1, int nk=0) Line 4107 + 0x8 bytes C
python27_d.dll!call_function(_object * * * pp_stack=0x0021e6ac, int
oparg=0) Line 4042 + 0xf bytes C
python27_d.dll!PyEval_EvalFrameEx(_frame * f=0x0112d2f0, int
throwflag=0) Line 2668 C
python27_d.dll!PyEval_EvalCodeEx(PyCodeObject * co=0x010644a8,
_object * globals=0x0112d2f0, _object * locals=0x00000000, _object * *
args=0x011f5f9c, int argcount=7, _object * * kws=0x0120644c, int
kwcount=1, _object * * defs=0x010ce4fc, int defcount=7, _object *
closure=0x00000000) Line 3253 + 0xb bytes C
python27_d.dll!function_call(_object * func=0x010cfb38, _object *
arg=0x011f5f88, _object * kw=0x0120a428) Line 531 + 0x3a bytes C
python27_d.dll!PyObject_Call(_object * func=0x010cfb38, _object *
arg=0x011f5f88, _object * kw=0x0120a428) Line 2529 + 0xf bytes C
python27_d.dll!instancemethod_call(_object * func=0x010cfb38, _object
* arg=0x011f5f88, _object * kw=0x0120a428) Line 2602 + 0x11 bytes C
python27_d.dll!PyObject_Call(_object * func=0x00f0ec38, _object *
arg=0x011f5f88, _object * kw=0x0120a428) Line 2529 + 0xf bytes C
python27_d.dll!do_call(_object * func=0x00f0ec38, _object * * *
pp_stack=0x0021eb1c, int na=7, int nk=1) Line 4239 + 0x8 bytes C
python27_d.dll!call_function(_object * * * pp_stack=0x0021eb1c, int
oparg=1) Line 4044 + 0x7 bytes C
python27_d.dll!PyEval_EvalFrameEx(_frame * f=0x0112dcf8, int
throwflag=0) Line 2668 C
python27_d.dll!PyEval_EvalCodeEx(PyCodeObject * co=0x00f6f928,
_object * globals=0x0112dcf8, _object * locals=0x00000000, _object * *
args=0x0120719c, int argcount=1, _object * * kws=0x00a87754, int
kwcount=2, _object * * defs=0x019e711c, int defcount=13, _object *
closure=0x00000000) Line 3253 + 0xb bytes C
python27_d.dll!function_call(_object * func=0x010f22f8, _object *
arg=0x01207188, _object * kw=0x0120a2d8) Line 531 + 0x3a bytes C
python27_d.dll!PyObject_Call(_object * func=0x010f22f8, _object *
arg=0x01207188, _object * kw=0x0120a2d8) Line 2529 + 0xf bytes C
python27_d.dll!instancemethod_call(_object * func=0x010f22f8, _object
* arg=0x01207188, _object * kw=0x0120a2d8) Line 2602 + 0x11 bytes C
python27_d.dll!PyObject_Call(_object * func=0x00f0ebf8, _object *
arg=0x00a31038, _object * kw=0x0120a2d8) Line 2529 + 0xf bytes C
python27_d.dll!slot_tp_init(_object * self=0x012071c0, _object *
args=0x00a31038, _object * kwds=0x0120a2d8) Line 5692 + 0x11 bytes C
python27_d.dll!type_call(_typeobject * type=0x00f9c470, _object *
args=0x00a31038, _object * kwds=0x0120a2d8) Line 745 + 0x35 bytes C
python27_d.dll!PyObject_Call(_object * func=0x00f9c470, _object *
arg=0x00a31038, _object * kw=0x0120a2d8) Line 2529 + 0xf bytes C
python27_d.dll!do_call(_object * func=0x00f9c470, _object * * *
pp_stack=0x0021efe4, int na=0, int nk=2) Line 4239 + 0x8 bytes C
python27_d.dll!call_function(_object * * * pp_stack=0x0021efe4, int
oparg=2) Line 4044 + 0x7 bytes C
python27_d.dll!PyEval_EvalFrameEx(_frame * f=0x0112bda8, int
throwflag=0) Line 2668 C
python27_d.dll!PyEval_EvalCodeEx(PyCodeObject * co=0x010f4988,
_object * globals=0x0112bda8, _object * locals=0x00000000, _object * *
args=0x012070f4, int argcount=1, _object * * kws=0x00000000, int
kwcount=0, _object * * defs=0x00000000, int defcount=0, _object *
closure=0x00000000) Line 3253 + 0xb bytes C
python27_d.dll!function_call(_object * func=0x01205090, _object *
arg=0x012070e0, _object * kw=0x00000000) Line 531 + 0x3a bytes C
python27_d.dll!PyObject_Call(_object * func=0x01205090, _object *
arg=0x012070e0, _object * kw=0x00000000) Line 2529 + 0xf bytes C
python27_d.dll!instancemethod_call(_object * func=0x01205090, _object
* arg=0x012070e0, _object * kw=0x00000000) Line 2602 + 0x11 bytes C
python27_d.dll!PyObject_Call(_object * func=0x00f0edb8, _object *
arg=0x00a31038, _object * kw=0x00000000) Line 2529 + 0xf bytes C
python27_d.dll!PyEval_CallObjectWithKeywords(_object *
func=0x00f0edb8, _object * arg=0x00a31038, _object * kw=0x00000000)
Line 3891 C
_core__d.pyd!wxPyApp::_BootstrapApp() Line 635 + 0x10 bytes C++
_core__d.pyd!_wrap_PyApp__BootstrapApp(_object * __formal=0x00000000,
_object * args=0x011fff50) Line 35293 C++
python27_d.dll!PyCFunction_Call(_object * func=0x01ce65b8, _object *
arg=0x01207038, _object * kw=0x01202578) Line 101 + 0xe bytes C
python27_d.dll!ext_do_call(_object * func=0x01ce65b8, _object * * *
pp_stack=0x0021f4f4, int flags=3, int na=0, int nk=0) Line 4333 C
python27_d.dll!PyEval_EvalFrameEx(_frame * f=0x0106fad8, int
throwflag=0) Line 2708 C
python27_d.dll!PyEval_EvalCodeEx(PyCodeObject * co=0x012fa2c8,
_object * globals=0x0106fad8, _object * locals=0x00000000, _object * *
args=0x011e8934, int argcount=1, _object * * kws=0x011e8938, int
kwcount=0, _object * * defs=0x00000000, int defcount=0, _object *
closure=0x00000000) Line 3253 + 0xb bytes C
python27_d.dll!fast_function(_object * func=0x012fa2c8, _object * * *
pp_stack=0x0021f6a0, int n=1, int na=1, int nk=0) Line 4120 + 0x35 bytes C
python27_d.dll!call_function(_object * * * pp_stack=0x0021f6a0, int
oparg=0) Line 4042 + 0xf bytes C
python27_d.dll!PyEval_EvalFrameEx(_frame * f=0x011e87d8, int
throwflag=0) Line 2668 C
python27_d.dll!PyEval_EvalCodeEx(PyCodeObject * co=0x012ff208,
_object * globals=0x011e87d8, _object * locals=0x00000000, _object * *
args=0x0110764c, int argcount=2, _object * * kws=0x00000000, int
kwcount=0, _object * * defs=0x01c7f244, int defcount=4, _object *
closure=0x00000000) Line 3253 + 0xb bytes C
python27_d.dll!function_call(_object * func=0x01c78560, _object *
arg=0x01107638, _object * kw=0x00000000) Line 531 + 0x3a bytes C
python27_d.dll!PyObject_Call(_object * func=0x01c78560, _object *
arg=0x01107638, _object * kw=0x00000000) Line 2529 + 0xf bytes C
python27_d.dll!instancemethod_call(_object * func=0x01c78560, _object
* arg=0x01107638, _object * kw=0x00000000) Line 2602 + 0x11 bytes C
python27_d.dll!PyObject_Call(_object * func=0x00f0eaf8, _object *
arg=0x011fff18, _object * kw=0x00000000) Line 2529 + 0xf bytes C
python27_d.dll!slot_tp_init(_object * self=0x011fff50, _object *
args=0x011fff18, _object * kwds=0x00000000) Line 5692 + 0x11 bytes C
python27_d.dll!type_call(_typeobject * type=0x010c8420, _object *
args=0x011fff18, _object * kwds=0x00000000) Line 745 + 0x35 bytes C
python27_d.dll!PyObject_Call(_object * func=0x010c8420, _object *
arg=0x011fff18, _object * kw=0x00000000) Line 2529 + 0xf bytes C
python27_d.dll!do_call(_object * func=0x010c8420, _object * * *
pp_stack=0x0021fb68, int na=1, int nk=0) Line 4239 + 0x8 bytes C
python27_d.dll!call_function(_object * * * pp_stack=0x0021fb68, int
oparg=0) Line 4044 + 0x7 bytes C
python27_d.dll!PyEval_EvalFrameEx(_frame * f=0x01229da8, int
throwflag=0) Line 2668 C
python27_d.dll!fast_function(_object * func=0x011fdf88, _object * * *
pp_stack=0x0021fcc0, int n=0, int na=0, int nk=0) Line 4107 + 0x8 bytes C
python27_d.dll!call_function(_object * * * pp_stack=0x0021fcc0, int
oparg=0) Line 4042 + 0xf bytes C
python27_d.dll!PyEval_EvalFrameEx(_frame * f=0x00adfd78, int
throwflag=0) Line 2668 C
python27_d.dll!PyEval_EvalCodeEx(PyCodeObject * co=0x00a6bec8,
_object * globals=0x00adfd78, _object * locals=0x00a836c8, _object * *
args=0x00000000, int argcount=0, _object * * kws=0x00000000, int
kwcount=0, _object * * defs=0x00000000, int defcount=0, _object *
closure=0x00000000) Line 3253 + 0xb bytes C
python27_d.dll!PyEval_EvalCode(PyCodeObject * co=0x00a6bec8, _object
* globals=0x00a836c8, _object * locals=0x00a836c8) Line 672 + 0x1f bytes C
python27_d.dll!run_mod(_mod * mod=0x00c0d178, const char *
filename=0x00985c83, _object * globals=0x00a836c8, _object *
locals=0x00a836c8, PyCompilerFlags * flags=0x0021ff30, _arena *
arena=0x00b2e0c0) Line 1370 + 0x11 bytes C
python27_d.dll!PyRun_FileExFlags(_iobuf * fp=0x10311448, const char *
filename=0x00985c83, int start=257, _object * globals=0x00a836c8,
_object * locals=0x00a836c8, int closeit=1, PyCompilerFlags *
flags=0x0021ff30) Line 1356 + 0x1d bytes C
python27_d.dll!PyRun_SimpleFileExFlags(_iobuf * fp=0x10311448, const
char * filename=0x00985c83, int closeit=1, PyCompilerFlags *
flags=0x0021ff30) Line 949 + 0x22 bytes C
python27_d.dll!PyRun_AnyFileExFlags(_iobuf * fp=0x10311448, const
char * filename=0x00985c83, int closeit=1, PyCompilerFlags *
flags=0x0021ff30) Line 752 + 0x15 bytes C
python27_d.dll!Py_Main(int argc=2, char * * argv=0x00985c58) Line
643 + 0x39 bytes C
python_d.exe!main(int argc=2, char * * argv=0x00985c58) Line 23 +
0xe bytes C
python_d.exe!__tmainCRTStartup() Line 586 + 0x19 bytes C
python_d.exe!mainCRTStartup() Line 403 C
kernel32.dll!7c817077()
[Frames below may be incorrect and/or missing, no symbols loaded
for kernel32.dll]