> hopefully there are better tools there for debugging this > type of thing.
There are, but usually they are not free. Quick googling for "valgrind for windows" brought up commercial products Purify and Insure++ and free product DUMA. I used Purify myself occasionally - it's not bad, but you have to buy it. You can try other products and see what it shows you. Pavel On Mon, Jun 21, 2010 at 11:16 AM, Sam Carleton <scarle...@miltonstreet.com> wrote: > On Mon, Jun 21, 2010 at 9:37 AM, Roger Binns <rog...@rogerbinns.com> wrote: > >> As an example you would experience something like this if SQLite got >> initialized during the config phase. Just to make things even more >> complicated ASLR is turned off if you have Wine installed under Linux so I >> was only seeing the problem on some machines. > > Roger, > > Your post bring me back to what I asked in my last post: > > On Sun, Jun 20, 2010 at 11:31 PM, Sam Carleton > <scarle...@miltonstreet.com> wrote: >> >> Through one request from the client, I open and close the database >> multiple times. Since everything is very module, I am taking that >> approach with the DB, too: For authentication it is open/closed, for >> the initialization of the request the db is open/closed, for the >> processing of the request, the db is opened and closed. All of these >> are using the one and only C++ class to open and close the db. This >> approach allows me to keep all the open's and closes VERY close >> together, there might be lots of code that gets called because of a >> function call in between, but the function that does the open, does >> the close. This is why I took this approach. Since there are >> different threads access the DB at the same time, could this approach >> be causing problems I am unaware of? Would I be better off switching >> over to an approach of: each request opens the DB once and uses the >> same connection through the whole request? > > My point is: I don't do ANYTHING db initialization in start up phase > of loading my module. In the documentation for sqlite3_initialize() > it says, "The sqlite3_initialize() routine is called internally by > many other SQLite interfaces so that an application usually does not > need to invoke sqlite3_initialize() directly." So the Apache module > never calls sqlite3_initialize() directly, it allows the first > sqlite3_open_v2() to call it. > > I also don't believe any of the reading of module parameters > (configuration stuff that happens both times Apache loads the module) > every uses the database, they are all reading in info from flat files > which are used when a request comes in, to connect to the database. > > Oh, and this error does *NOT* happen all the time... The first thing > the web browser does once it connects is start a slide show, so within > 5 seconds there is a new request coming in from each browser all the > time. I have to open browser, after browser, sometime it happens on > one of the requests from the first browser (normally not) or it > happens after opening a bunch of them. The the specific close in > which the crash happens is one of two places in the beginning of the > request, either in the authentication section or in the process of > initialization of the request object, which happens after > authentication. > > I would love to port this code to Linux, but... It is not stand > alone, it depends on a .Net WinForms app to do all the initialization > and configuration of the Apache web server, there are also a total of > 6 different project (one is the Apache module, the rest are Axis2/C > Web Services and library classes), there is some Window specific code > in the Axis2/C projects because Axis2/C doesn't have good file > support. The long and the short of it is, I think it would take me > about a month to port to Linux, just to find one bug? Not a good > investment of my time. I am hoping to port the whole thing to OSX > some time next year (which is why I am using SQLite and not SQL Server > Express), hopefully there are better tools there for debugging this > type of thing. > > Sam > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users