Silverfrost Forums

Welcome to our forums

Addresses in listing are not correct

1 Mar 2024 3:15 #31187

This is a portion of a listing where the address of the line of code are not changing. I have included the compilation options for reference and a short section of the code. All the indicated addresses for actual code are 'AT 6A6'. I could not maintain the formatting when I copied/pasted the segments; apologies.

Silverfrost FTN95/x64 Ver 9.02.0.0 process_missing_configuration_file.FOR Fri Mar 1 07:52:10 2024

Compiler used [C:\Program Files (x86)\Silverfrost\FTN95\FTN95.exe] Salflibc path [C:\Program Files (x86)\Silverfrost\FTN95\salflibc.dll] Salflibc version [26.2.13.8] Compiler options in effect: 64;BINARY;BOUNDS_CHECK;CFPP;DUMP;ERROR_NUMBERS;FPP;IGNORE; IMPLICIT_NONE;LIST;NO_COMMENT;PERSIST;SAVE;UNLIMITED_ERRORS;WIDE_SOURCE;XREF; ZEROISE;

Salflibc path [C:\Program Files (x86)\Silverfrost\FTN95\salflibc.dll] Salflibc version [26.2.13.8] Compiler options in effect: 64;BINARY;BOUNDS_CHECK;CFPP;DUMP;ERROR_NUMBERS;FPP;IGNORE; IMPLICIT_NONE;LIST;NO_COMMENT;PERSIST;SAVE;UNLIMITED_ERRORS;WIDE_SOURCE;XREF; ZEROISE;

[quote:c7d568b1d7] 0058 config = ' ' ! clear out the config filename AT 6a6 0059 i = index(appfolder,'\',.true.) AT 6a6 0060 CONFIG_HELP = appfolder(1:i)//'Config_Edit.CHM' AT 6a6 0061 10000 continue AT 6a6 0062 is_dropped_file = 0 ! AT 6a6 0063 local_window_parameters%arbitrary_pointer = loc(is_dropped_file) AT 6a6 0064 call load_config_file_from_registry(failure) AT 6a6 0065 if(failure) then AT 6a6

2 Mar 2024 7:42 #31203

Bill

Thanks for the feedback.

3 Mar 2024 1:57 #31205

Bill,

I am not aware of your first quote source. The paths and DLL info are a useful report. Is this generated by FTN95 /list_info? or by your code ?

I keep many versions of FTN95 in c:\Program Files (x86)\Silverfrost\FTN95_x.xx. This includes some recent test versions, like 8.97, but not yet 9.02 !

I also use PLATO, which appears to mix the use of PATH and also the location of plato.exe. If I pin an old version of PLATO to the task bar, I appear to get unusual results, especially if .dll's are being mixed.

Your summary as a run-time report would be useful.

3 Mar 2024 5:51 #31207

John,

I copied the header from the listing file. It gives the options specified; that might be important to Paul, et. al. I use /LIST when I compile.

I always get a listing file. I refer to it when there is a fault (winio@() generated because of something wrong, usually), or a real program fault (when there is an unknown crash). Without the address within the routine, I can't narrow down the issue. Normally, the listing file is of little use.

For /RELEASE this is the only option available to locate and fix some programming error, or identify a crash (i.e. underflow, divide by zero, ...). For some mistakes, a /CHECKMATE version will give the line number, but I have found that /CHECKMATE will conceal some errors that are evident only in /RELEASE. So, the listings are important..

They are so important that I save the listings when I make a formal release to my customers. Hundreds of megabytes that (hopefully) will never be used. And, they are sometimes!

I don't save past versions, other than one level. Too confusing for me. Since I am a commercial user, I keep up with the versions, recompile and retest my code each Silverfrost release. It takes some time and I delay some times if the fixes don't affect me directly. Once I finish testing, I know I've got the fixes, and my code has not been adversely impacted. Again, the listing files can come in handy!

Hope this answers your questions. Bill

13 Mar 2024 2:48 #31268

I was using a listing for the 32-bit product and wanted to make a note to a previous comment of mine.

I do use the listings! Every release, I run a program I wrote that processes the listing information and produces a list of functions/subroutines and arguments (including the expected type) and puts the information into a spreadsheet format.

Especially for a function/subroutine with 10 or more arguments, some of which are TYPE's, this has been especially useful when writing new code using existing routines.

With over 400 functions/subroutines, some of which have similar names and very different arguments, this helps me keep things straight(er)!

Bill

Please login to reply.