Silverfrost Forums

Welcome to our forums

Access Violation

28 May 2020 7:44 #25526

Dear Sir:

I am using the PE edition of Silverfrost Ftn95. I am working with programs and files that were previously developed.

All programs are installed on a Windows 7 Professional (Service Pack 1), 64-bit machine.

When compiling and linking the set of subroutines, an .EXE file is not created. Instead I get an Access Violation with the following error information:

The instruction at address 004196c8 attempted to read from location 0b31f20c

00419426 loadDLL[<ptr>char,int][+02a2] 004028ed loadObject[<ptr>char][+0291] 004259d9 loadCatenatedObject[<ptr>char][+02ac] 00402c17 loadNamedObjectFile[<ptr>char][+0143] 00420708 findDLL[<ptr>char][+01b0] 004208d0 loadStandardDLLs[void][+01b2] 0040766a parcelUpExe[void][+0857] 0040c049 parcelCommandLine[<ptr><ptr>char][+03ab]

Upon Googling the last line above, one resulting link referred to a post on your forum dated 21 Jan 2015.

That post had the exact problem as I do, but there did not seem to be a resolution.

Hence, I'd like to explore the issue further on the forum.

A brief outline of how this issue is produced is given here:

Examples of compiler and linking commands are:

A file, COMFILE.BAT, for compiling all the subroutines with the commands:

ftn95 A.FOR /im /dreal /debug /zeroise /save /errorlog .

ftn95 Z.FOR /im /dreal /debug /zeroise /save /errorlog where A.FOR is the main Fortran program.

A listing all the A.OBJ... Z.OBJ files is contained in a file called listfile.

The linker commands are:

slink -archive:A.lib -addobj:@listfile -file

slink A.obj A.lib -file:AOUT

One Caveat:

I have linked the files using all the A-Z.OBJ files and, then, using only A.OBJ and get the exact, same Access Violation message!

Thank you in advance for your help,

E.J. Yoerger

29 May 2020 6:05 #25527

I don't understand what is happening here. I assume that you are compiling and linking a 32 bit Fortran program using FTN95 and SLINK and you say that the exe is not created.

You could start by identifying the point of failure by separate commands to compile (run FTN95) for each Fortran file in turn. At this point it would be better to replace /DEBUG by /UNDEF (or /CHECKMATE).

If this is successful then run SLINK separately to link all of the obj files into an exe. If you don't know how to do this then find the relevant commands in the batch file that you have inherited.

If the failure is at link time (as you imply) then report back and we can consider what to do next.

Please login to reply.