Page 1 of 1

Динамическая библиотека в Linux wxGTK

Posted: Wed Jan 07, 2009 12:55 am
by ONEEYEMAN
Dobrogo vremeni sutok,
Vot takoj vopros: kto nibud proboval apgrejdirt prilogenie s .so v Linukse do wx-2.9/3.0?

Spasibo.

Posted: Sat Jan 31, 2009 5:39 am
by ONEEYEMAN
Надеюсь кто-нибудь использует KDevelop?

Этот проэкт компилируется под wxGTK 2.8 и TRUNK. Но под 2.8 программа запускается без проблем, а под wx TRUNK происходит исключение glibc - double free().

Под Windows программа работает.

Для того чтобы вызвать exception, запустите программу и выберите Help->About.

Большая просьба запостить в случае получения exception и в случае его не получения.

Если я запускаю программу в KDevelop через "valgrind" то получаю следующее:

Code: Select all

Invalid free()/delete/delete[]
1 at <addr>: operator delete(void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
2 by <addr>: wxCharTypeBuffer<char>::DecRef()(buffer.h:211)
3 by <addr>: wxCharTypeBuffer<char>::~wxCharTypeBuffer()(buffer.h:97)
4 by <addr>: wxCharBuffer::~wxCharBuffer()(buffer.h:222)
5 by <addr>: wxString::wxString(char const*)(string.h:1232)
6 by <addr>: test (test_so.cpp:36)
7 by <addr>: testFrame::OnAbout(wxCommandEvent&)(test.cpp:58)
8 by <addr>: wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler:: *)(wxEDvent&),wxEvent&) const (appbase.cpp:416)
9 by <addr>: wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)(event.cpp:1241)
10 by <addr>: wxEventHashTable::HandleEvent(wxEvent&, wxEventHandler*)(event.cpp:912)
11 by <addr>: wxEvtHandler::ProcessEventHere(wxEvent&)(event.cpp:1320)
12 by <addr>: wxEvtHandler::ProcessEvent(wxEvent&)(event.cpp:1297)
13 Address <addr> is 40 bytes inside a block of size 52 alloc'd
14 at <addr>: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
15 by <addr>: wxDebugAlloc(unsigned, wchar_t*,int,bool,bool)(memory.cpp:962)
16 by <addr>: operator new(unsigned)(memory.cpp:915)
17 by <addr>: wxCharTypeBuffer<char>::CreateNonOwned(char const*)(buffer.h:91)
18 by <addr>: wxString::ConvertStr(char const*,unsigned,wxMBConv const&)(string.cpp:500)
19 by <addr>: wxString::ImplStr(char const*, wxMBConvconst&)(string.h:553)
20 by <addr>: wxString::wxString(char const*)(string.h:1232)
21 by <addr>: test (test_so.cpp:36)
22 by <addr>: testFrame::OnAbout(wxCommandEvent&)(test.cpp:58)
23 by <addr>: wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*(wxEvent&),wxEvent&) const (appbase.cpp:416)
24 by <addr>: wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,wxEvtHandler*,wxEvent&)(event.cpp:1241)
25 by <addr>: wxEventHashTable::HandleEvent(wxEvent&,wxEvtHandler*)(event.cpp:912)
Заранее спасибо.