access violation using wxTreeCtrl
Harry
"harry dot news at armadillo dot fr" at a.mx.sunsite.dk
Mon Mar 17 03:42:06 PDT 2008
Vadim,
Yes, I'm using Vista.
Curiously, the abort happens in TV_SetItemState() as it does for the
patch you referred to,
although the circumstances look different (I'm closing the window).
Where can I get this patch ? Or do I simply download the last daily build ?
For what it may help, here's my stack trace with symbols (using
wxMSW-2008-03-04):
comctl32.dll!TV_SetItemState() + 0xd bytes
comctl32.dll!TV_SelectItem() + 0x5bb6c bytes
comctl32.dll!TV_DeleteItemRecurse() - 0x6a5e bytes
comctl32.dll!TV_DeleteItemRecurse() + 0x439 bytes
comctl32.dll!TV_DeleteItem() + 0x67 bytes
comctl32.dll!TV_WndProc() + 0x44e8e bytes
user32.dll!_InternalCallWinProc at 20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow at 32() + 0xb3 bytes
user32.dll!_CallWindowProcAorW at 24() + 0x51 bytes
user32.dll!_CallWindowProcW at 20() + 0x1b bytes
> treectrl.exe!wxWindow::MSWDefWindowProc(unsigned int nMsg=4353,
unsigned int wParam=0, long lParam=-65536) Line 2258 + 0x25 bytes C++
treectrl.exe!wxTreeCtrl::MSWDefWindowProc(unsigned int nMsg=4353,
unsigned int wParam=0, long lParam=-65536) Line 2450 C++
treectrl.exe!wxWindow::MSWWindowProc(unsigned int message=4353,
unsigned int wParam=0, long lParam=-65536) Line 3508 + 0x22 bytes C++
treectrl.exe!wxTreeCtrl::MSWWindowProc(unsigned int nMsg=4353,
unsigned int wParam=0, long lParam=-65536) Line 2412 + 0x17 bytes C++
treectrl.exe!wxWndProc(HWND__ * hWnd=0x00050f58, unsigned int
message=4353, unsigned int wParam=0, long lParam=-65536) Line 2669 +
0x1c bytes C++
user32.dll!_InternalCallWinProc at 20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow at 32() + 0xb3 bytes
user32.dll!_SendMessageWorker at 20() + 0xd5 bytes
user32.dll!_SendMessageW at 16() + 0x49 bytes
treectrl.exe!wxTreeCtrl::DeleteAllItems() Line 1630 + 0x1b
bytes C++
treectrl.exe!wxTreeCtrl::~wxTreeCtrl() Line 808 C++
treectrl.exe!MyTreeCtrl::~MyTreeCtrl() Line 68 + 0x18 bytes C++
treectrl.exe!MyTreeCtrl::`scalar deleting destructor'() + 0xf
bytes C++
treectrl.exe!wxWindowBase::DestroyChildren() Line 424 + 0x21
bytes C++
treectrl.exe!wxWindow::~wxWindow() Line 578 C++
treectrl.exe!wxPanel::~wxPanel() Line 133 + 0x1d bytes C++
treectrl.exe!wxPanel::`scalar deleting destructor'() + 0xf
bytes C++
treectrl.exe!wxWindowBase::DestroyChildren() Line 424 + 0x21
bytes C++
treectrl.exe!wxWindow::~wxWindow() Line 578 C++
treectrl.exe!wxTopLevelWindowBase::~wxTopLevelWindowBase() Line
112 + 0x33 bytes C++
treectrl.exe!wxTopLevelWindowMSW::~wxTopLevelWindowMSW() Line 624
+ 0xf bytes C++
treectrl.exe!wxTopLevelWindow::~wxTopLevelWindow() + 0xf bytes C++
treectrl.exe!wxFrameBase::~wxFrameBase() Line 79 + 0x1d bytes C++
treectrl.exe!wxFrame::~wxFrame() Line 214 + 0xf bytes C++
treectrl.exe!MyFrame::~MyFrame() Line 324 + 0xf bytes C++
treectrl.exe!MyFrame::`scalar deleting destructor'() + 0xf
bytes C++
treectrl.exe!wxAppBase::DeletePendingObjects() Line 343 + 0x21
bytes C++
treectrl.exe!wxAppBase::ProcessIdle() Line 376 C++
treectrl.exe!wxEventLoopManual::Run() Line 82 + 0x44 bytes C++
treectrl.exe!wxAppConsoleBase::MainLoop() Line 305 + 0x25 bytes C++
treectrl.exe!wxAppConsoleBase::OnRun() Line 254 C++
treectrl.exe!wxAppBase::OnRun() Line 293 C++
treectrl.exe!wxEntryReal(int & argc=1, wchar_t * *
argv=0x012aa908) Line 460 + 0x1b bytes C++
treectrl.exe!wxEntry(int & argc=1, wchar_t * * argv=0x012aa908)
Line 210 + 0xd bytes C++
treectrl.exe!wxEntry(HINSTANCE__ * hInstance=0x00400000,
HINSTANCE__ * __formal=0x00000000, HINSTANCE__ * __formal=0x00000000,
int nCmdShow=1) Line 424 + 0x10 bytes C++
treectrl.exe!WinMain(HINSTANCE__ * hInstance=0x00400000,
HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00304272, int
nCmdShow=1) Line 163 + 0x18 bytes C++
treectrl.exe!__tmainCRTStartup() Line 589 + 0x35 bytes C
treectrl.exe!WinMainCRTStartup() Line 414 C
kernel32.dll!@BaseThreadInitThunk at 12() + 0x12 bytes
ntdll.dll!__RtlUserThreadStart at 8() + 0x27 bytes
Vadim Zeitlin wrote:
> On Wed, 05 Mar 2008 09:39:27 +0100 Harry <"harry dot news at armadillo dot fr"@a.mx.sunsite.dk> wrote:
>
> H> Using Visual Studio 2005 and daily build wxMSW-2008-03-04, I don't get
> H> the assertions,
> H> but I still get the abort:
> H> Unhandled exception at 0x74cdc1f4 in treectrl.exe: 0xC0000005: Access
> H> violation reading location 0xfeeeff0a.
>
> Are you using Vista by chance? There was a discussion on wx-dev recently
> about a crash which only happens under this OS (and only in multiselection
> mode). The backtrace is not nearly the same though... Please have a look at
> http://thread.gmane.org/gmane.comp.lib.wxwidgets.devel/98918 and the patch
> referenced there: does applying it help?
>
> H> It seems to me like wxTreeCtrl::DeleteAllItems() is trying to delete
> H> already-deleted items.
>
> Hmm, do you have any specific reasons for thinking this? I don't really
> see them...
>
> H> The stack trace is as follows:
> H>
> H> comctl32.dll!74cdc1f4()
> H> [snip]
> H> user32.dll!76272d14()
> H> > treectrl.exe!wxWindow::MSWDefWindowProc(unsigned int nMsg=4353,
> H> unsigned int wParam=0, long lParam=-65536) Line 2258 + 0x25 bytes C++
> H> treectrl.exe!wxTreeCtrl::MSWDefWindowProc(unsigned int nMsg=4353,
> H> unsigned int wParam=0, long lParam=-65536) Line 2450 C++
> H> treectrl.exe!wxWindow::MSWWindowProc(unsigned int message=4353,
> H> unsigned int wParam=0, long lParam=-65536) Line 3508 + 0x22 bytes C++
> H> treectrl.exe!wxTreeCtrl::MSWWindowProc(unsigned int nMsg=4353,
> H> unsigned int wParam=0, long lParam=-65536) Line 2412 + 0x17 bytes C++
> H> treectrl.exe!wxWndProc(HWND__ * hWnd=0x000307e2, unsigned int
> H> message=4353, unsigned int wParam=0, long lParam=-65536) Line 2669 +
> H> 0x1c bytes C++
> H> user32.dll!76271a10()
> H> [snip]
> H> treectrl.exe!wxTreeCtrl::DeleteAllItems() Line 1630 + 0x1b
> H> bytes C++
> H> treectrl.exe!wxTreeCtrl::~wxTreeCtrl() Line 808 C++
>
> DeleteAllItems() is called and it sends TVM_DELETEITEM to the control
> (this is the message 4353) and I don't understand why would the items be
> already deleted.
>
> BTW, in the 2nd post in the above thread I wrote about how to get symbols
> for the frames in user32.dll and comctl32.dll, please see the first
> paragraph of http://article.gmane.org/gmane.comp.lib.wxwidgets.devel/98926
> Could you please set your _NT_SYMBOL_PATH and show the backtrace with the
> symbols? This might give some more information as right now I really don't
> have any idea about what to do with this.
>
> Thanks!
> VZ
>
>
More information about the wx-users
mailing list