mecej4
Joined: 31 Oct 2006 Posts: 1886
|
Posted: Mon May 03, 2021 11:56 pm Post subject: Bugs in 64-bit Slink64 3. 01 |
|
|
1. A minor bug (I renamed the newly downloaded SLINK64 as XSLINK64 so as to keep the old one).
When asked to link a single object file, implying that the EXE should have the same name as the OBJ but the EXE extension, the linker overwrites the OBJ file with an EXE but gives it an OBJ suffix.
Code: | T:\lang>dir hahn1.obj
Volume in drive T is AMDDisk
Volume Serial Number is D6EB-D999
Directory of T:\lang
05/03/2021 05:45 PM 2,763 hahn1.obj
1 File(s) 2,763 bytes
0 Dir(s) 380,436,480 bytes free
T:\lang>xslink64 hahn1.obj
[SLINK64 v3.01, Copyright (c) Silverfrost Ltd. 2015-2021]
Loading T:\lang\hahn1.obj
Creating executable file hahn1.obj
T:\lang>dir hahn1.obj
Volume in drive T is AMDDisk
Volume Serial Number is D6EB-D999
Directory of T:\lang
05/03/2021 05:45 PM 7,168 hahn1.obj
1 File(s) 7,168 bytes
0 Dir(s) 380,432,384 bytes free
|
2. A more serious bug: the new linker produces an EXE that crashes in SDBG64. Here is a test program to reproduce the problem.
Code: | Module Fdata
implicit none
integer, parameter :: NDATA=250
double precision, dimension(NDATA) :: t, y
End Module
Program XLMM1
use Fdata
implicit none
integer i,n,np,its,ier
N=4
open(unit=10,file='hahn1.dat',status='old')
read(10,*)(y(i),t(i),i=1,N) ! note only 4 rows being filled.
close(10)
print *,n,' lines read from data file'
end |
Compile with FTN95 /64 /debug and link with the new 64-bit linker. Create a data file, HAHN1.dat, with these 4 lines:
Code: | 0.1 1.1
0.2 2.3
0.3 3.4
0.4 5.6 |
Open the EXE with SDBG64, place a breakpoint on the line containing "PRINT" and run. The debugger stops with
Code: |
Error: Access Violation writing address 0x00000000001A1000 |
If the EXE is built using the old SLINK64, this problem is not seen. |
|