Hi Stephan, thanks a lot for providing assistance. Unfortunately, both of your ideas are not the case:
- I never dlclose() anything, - no C++ exception is being thrown. I also tried to recompile my code against an older V8 revision (May 2010), which I used for previous release of v8cgi (without problems, at that time). This particular crash disappeared, but other crashes (GetInternalField) remain the same, which signals that the problem is most probably caused by *my* recent experiments and changes regarding DLLs, their compilation and linking with MinGW. Shit :-( Sincerely, Ondrej 2010/11/26 Stephan Beal <[email protected]>: > On Fri, Nov 26, 2010 at 3:03 PM, ondras <[email protected]> wrote: >> >> * it happens only on windows (mingw); >> * it is very difficult to isolate the problem (offending calls are >> made from a dlopen()'ed DLL module...); > > Out of curiosity, are you ever dlclose()ing the DLL? In general case, it is > never safe to close a DLL, since they can allocate arbitrary resources in > the main app which then refer to dead space when the DLL is closed. It is > only halfway safe in very, very controlled cases. See: > http://code.google.com/p/v8-juice/wiki/Plugins#DLLs_are_never_unloaded > for more thoughts on that. >> >> #10 0x63c877fe in v8::internal::Invoke (construct=false, func=..., >> receiver=..., argc=4, args=0x22fd20, >> has_pending_exception=0x22fcbf) >> ...#16 0x004082f2 in main (argc=2, argv=0x3e5400) at src\v8cgi.cc:254 >> (gdb) > > Was a _native_ exception thrown in here? If so, you might try making sure > that the exception does not cross DLL boundaries. From what the gurus (e.g. > Herb Sutter) say, it's not portable to allow them to cross library > boundaries, and doing so can lead to undefined behaviour. (That said, in my > experience it works just fine.) > -- > ----- stephan beal > http://wanderinghorse.net/home/stephan/ > > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
