From: Thomas S. <th...@mi...> - 2000-08-17 16:44:19
|
Hi Kirk, Let me summarize the problem as I understand it: An exception is thrown in ZipFile::readCentralDirectory(), because ZipFile::readEndOfCentralDirectory() fails to locate the end-of-central-directory (eocd) structure in the file. You have then tracked down that the failure is caused by BackBuffer::readChunk() returning 0. Know if for some reason we're unable to find the eocd structure in the loaded data, then readChunk() might fail for the very good reason that it has read all the way back to the beginning of the file. For zip archives with no or short zip-comments readChunk should only be called once, so try to figure out if this is the case. With the STL library that accompanies SGI MIPSpro 7.3 there is a problem with iostreams: you cannot read the last byte in a file and then do a new succesful seekg. Try printing the return-value of is.tellg() right after the call to is.seekg() in VirtualSeeker::vseekg(). Also try printing out the stream state a la: cerr << "Stream state: " ; cerr << "good() = " << is.good() << ",\t" ; cerr << "fail() = " << is.fail() << ",\t" ; cerr << "bad() = " << is.bad() << ",\t" ; cerr << "eof() = " << is.eof() << endl << endl; before returning in readChunk(). Thanks for hanging in there despite the frustrating problems! Best regards, Thomas Kirk Klobe wrote: > > Best guess right now for the culprit is readByteSeq. Unfortunately, I'm > having to step through the Microsoft C++ Library source code as I go (ACK), > so my progress is frustratingly slow due to my lack of expertise with the > innards of said library. > > The reinterpret_cast for buf in readByteSeq makes me nervous, only because > Win32 has always seemed to get easily confused when it's (reading/writing) > data (from/to) files and you (mix/cast) signed and unsigned char data (my > previous porting effort for the Win32 version of Inform, a text-to-binary > adventure game compiler, taught me a bit about this). > > Still heads down on this, will post my progress (assuming I actually make > some). > > - Kirk > > ----- Original Message ----- > From: "Kirk Klobe" <ki...@vi...> > To: <zip...@li...> > Sent: Saturday, August 12, 2000 11:38 AM > Subject: [Zipios-devel] Win32 Debugging > > > Well, things are not going so well. After trying a couple of the > different > > libraries available, compiler settings, and the like, I've made no > progress, > > and have started going down the wonderful interactive debugger route. The > > first test is the testzip() function, and it's failing in readChunk(). > I'm > > not sure yet if the culprit is in the VC6 libraries, but I'll post my > > progress (in-laws are in town this weekend, but I'm squeezing in some time > > anyway!). dircollcoll IS working, despite my last messages; I simply > hadn't > > copied the test .exe to the directory I thought I had and it wasn't > picking > > up the test header file. > > > > - Kirk > > > > > > _______________________________________________ > > Zipios-devel mailing list > > Zip...@li... > > http://lists.sourceforge.net/mailman/listinfo/zipios-devel > > > > _______________________________________________ > Zipios-devel mailing list > Zip...@li... > http://lists.sourceforge.net/mailman/listinfo/zipios-devel |