-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Sisyphus escribĂo: > > ----- Original Message ----- From: "Brian Millett" <[EMAIL PROTECTED]> > To: <inline@perl.org> > Sent: Thursday, June 14, 2007 5:57 AM > Subject: Strange Inline::C error > > >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> Let me setup the environment. I have 2 machines: >> >> (A) windows 2000 server pro, activeperl 5.8.4, visualstudio 6, vertex 3.0 >> sales >> tax software, 1.2 GB ram >> >> (B) windows 2000 server pro, activeperl 5.8.4, visualstudio 6, vertex 3.0 >> sales >> tax software. 1 GB ram >> >> Both have Service pack 4 installed. >> >> I have inline::c modules that wraps the vertex libraries so I can use >> them >> from >> perl. The libraries are Vst.lib & Location.lib (There are corresponding >> Vst.dll >> & Location.dll for the vertex applications) >> >> The code will follow, but the problem is that on the machine (A) it >> compiles and >> runs just fine. On machine (B) I get an exception: >> >> "The instruction at "0x029e2d99" referenced memory at "0x029a322c". The >> memory >> could not be "written"" >> >> When I try to debug it, I get >> "Unhandled exception in perl.exe (VST.DLL): 0xC0000005: Access Violation" > > The script has compiled ok - what you're seeing is a runtime error. > > Is it exactly the same VST.DLL on both machines ? > If not, try copying the VST.DLL that's on machine A across to machine B. > > Other than that, one thing I would attempt to do is determine exactly which > function call triggers the segfault. (I usually do that by inserting some > debug 'printf("Got to here\n");' type statements at various points > throughout the code until the culprit is isolated.) > > Once you have determined the function call that's causing the problem, then > it might be possible to work out what's gone wrong by looking at the source > code. The error message suggests to me that the problem is with the vertex > library (about which I know nothing) and not with any of the code you have > written. Is there any support for vertex ? Perhaps the vertex developers > know about it already - and have a solution. > > Cheers, > Rob
Thanks Rob, Yes, the VST.DLL are the same. I had put in print statements and found that the calls to open the vertex database work. Any call to a LOCATION.DLL works also (geolocator). But a call to the VST.DLL (other than opening the database) failed. I found a work around, but not an answer. The solution is a bit of a hack. What I found was the system (A) was originally setup with avtiveperl 5.6.1 then upgraded to 5.8.4. The Inline module was installed or compiled with the 5.6.1 perl. So I removed the perl 5.8.4 on (B) completely (\Perl gone!). Installed 5.6.1 and installed Inline. Ran the tests and they work great. Then I uninstalled 5.6.1 and installed 5.8.4 (had to delete the stuff under _Inline folder). Ran the tests and they still work. Pressing my luck, I uninstalled 5.8.4 and installed 5.8.8 and went through the hokey-poky dance again. But this time I got the old memory access error. Went back to 5.8.4 and it works. Grrrrrr. So it seems to me to be an ActivePerl 5.8.X runtime error. So in short it will work IFF I install 5.6.1 first. Install Inline. Remove 5.6.1 and install 5.8.4. The \Perl\site folder is left so the original install of Inline is still available. And people wonder why I like linux. Thanks for your help. - -- Brian Millett [EMAIL PROTECTED] "Heaven can not exist, (636) 458-9106 If the family is not eternal" 6B-GSCTHP F. Ballard Washburn -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Remi - http://enigmail.mozdev.org iD8DBQFGcUCkDVN3ZP5gvv0RAjSRAJ9fVHR08KVOktMligg+WrsKUPdKQQCgoxik Zel/2nmt+Al5uX/mKKhjiC4= =qmor -----END PGP SIGNATURE-----