wxPluginLibrary crashes when used in Apache module
Franky Braem
f.braem at skynet.be
Thu Jan 24 11:45:25 PST 2008
Hi,
I'm building a JavaScript module with wxWidgets (see
http://www.wxjavascript.net) to make it possible to use JavaScript and
wxWidgets ported classes for writing server-side html pages.
I'm using wxPluginManager and wxPluginLibrary to load modules (which
contain specific ported wx-classes). When I use this in my shell
program, everything works. When I use it in the Apache module, I get a
crash. The crashes when the second module is unloaded (when I only load
one module, I don't see the crash).
The code using wxPluginManager can be watched here:
http://wxjs.svn.sourceforge.net/viewvc/wxjs/trunk/wxJS2/src/engine/module.cpp?view=markup
http://wxjs.svn.sourceforge.net/viewvc/wxjs/trunk/wxJS2/src/engine/module.h?view=markup
This is the call stack:
wxbase28ud_vc_custom.dll!wxStringBase::c_str() Line 527 + 0x11 bytes C++
wxbase28ud_vc_custom.dll!wxStringHash::operator()(const wxString &
x={...}) Line 570 + 0x16 bytes C++
wxbase28ud_vc_custom.dll!wxDLManifest_wxImplementation_HashTable::GetNodePtr(const
wxString & key={...}) Line 32 + 0x2d bytes C++
wxbase28ud_vc_custom.dll!wxDLManifest_wxImplementation_HashTable::erase(const
wxString & key={...}) Line 32 + 0x2c bytes C++
wxbase28ud_vc_custom.dll!wxDLManifest::erase(const wxString &
k={...}) Line 32 + 0x1a bytes C++
wxbase28ud_vc_custom.dll!wxDLManifest::erase(const
wxDLManifest_wxImplementation_HashTable::iterator & it={...}) Line 32 +
0x1f bytes C++
wxbase28ud_vc_custom.dll!wxPluginLibrary::RestoreClasses() Line 153
+ 0x37 bytes C++
wxbase28ud_vc_custom.dll!wxPluginLibrary::~wxPluginLibrary() Line
103 C++
wxbase28ud_vc_custom.dll!wxPluginLibrary::`scalar deleting
destructor'() + 0x16 bytes C++
wxbase28ud_vc_custom.dll!wxPluginLibrary::UnrefLib() Line 121 +
0x1c bytes C++
wxbase28ud_vc_custom.dll!wxPluginLibrary::Unload() Line 81 + 0x16
bytes C++
mod_wxjs.dll!wxjs::Module::~Module() Line 47 + 0xe bytes C++
mod_wxjs.dll!wxjs::Module::`scalar deleting destructor'() + 0x16
bytes C++
mod_wxjs.dll!wxjs::Engine::UnInitialize() Line 373 + 0x2a bytes C++
mod_wxjs.dll!wxJavaScript::~wxJavaScript() Line 70 C++
mod_wxjs.dll!wxJavaScript::`scalar deleting destructor'() + 0x16
bytes C++
mod_wxjs.dll!wxjs::PoolClass::CleanUp(void * ptr=0x009c7448) Line 51
+ 0x22 bytes C++
libapr-1.dll!run_cleanups(cleanup_t * * cref=0x0038bb08) Line 2034 +
0xf bytes C
libapr-1.dll!apr_pool_destroy(apr_pool_t * pool=0x0038baf8) Line 727
+ 0xc bytes C
libapr-1.dll!apr_pool_destroy(apr_pool_t * pool=0x00389ab8) Line 724
+ 0xc bytes C
httpd.exe!destroy_and_exit_process(process_rec * process=0x008f30d8,
int process_exit_value=0) Line 261 C
httpd.exe!main(int argc=1, const char * const * argv=0x00383390)
Line 737 + 0xb bytes C
httpd.exe!__tmainCRTStartup() Line 597 + 0x19 bytes C
httpd.exe!mainCRTStartup() Line 414 C
kernel32.dll!RegisterWaitForInputIdle() + 0x49 bytes
More information about the wx-users
mailing list