Page 1 of 1

Debugging Issues with Fortran

Posted: Thu Sep 19, 2019 10:58 am
by cgoodwin
So I managed to get nearly all aspects of the VMS IDE setup for our systems, with the exception of debugging our Fortran code. It successfully runs our com file, which compiles and links the code into the exe and dbg files, then the command file copies those to the correct directory (project_root.out.debug). This all works correctly. I go to run the debugger and it comes up with warnings that the .lis file doesn't find for the source files. After that, it contnues as normal in the output window. I can step through my application at this point, but any break points I set on the code file aren't hit, and nothing is populated in the variables, watch, and call stack windows. I believe this has to do with those .lis files, however, I am having issues finding any documentation on them. Anyone have any ideas on what to do? Thanks for any help!

Output Window on Debug Attempt:

Code: Select all

Connected to the server
.LIS file doesn't find for the source file c:/my_file_path/my_source_code.FOR

.LIS file doesn't find for the source file c:/my_file_path/my_other_source_code.com

OpenVMS I64 Debug64 Version V8.4-000

CMD: display dbge AT q1 output
CMD: select /error dbge
CMD: set mode screen
CMD: display /remove src
CMD: set abort_key = CTRL_C
CMD: run [mypath.rootproject.out.debug]myexecutable.exe
DBG: %DEBUG-I-NODSTS, no Debugger Symbol Table: no DSF file found and
-DEBUG-I-NODSTIMG, no symbols in MY$DISK:[MYPATH.ROOTPROJECT.OUT.DEBUG]MYEXECUTABLE.EXE;1
%DEBUG-I-INITIAL, Language: FORTRAN, Module: MY_SOURCE_CODE

CMD: set scope  0
CMD: step /over

Re: Debugging Issues with Fortran

Posted: Fri Sep 20, 2019 7:23 am
by sergey_vorfolomeev
to produce listing files use /LIST compiler qualifier
to produce .MAP files use /MAP linker qualifier
the listing files must be in the same location as the object files (project_root.out.debug.obj) and map files must be in the same location as the executable file (project_root.out.debug) before compilation ends, so the extension can download them immediately after compilation

Re: Debugging Issues with Fortran

Posted: Mon Sep 23, 2019 9:12 am
by cgoodwin
to produce listing files use /LIST compiler qualifier
to produce .MAP files use /MAP linker qualifier
the listing files must be in the same location as the object files (project_root.out.debug.obj) and map files must be in the same location as the executable file (project_root.out.debug) before compilation ends, so the extension can download them immediately after compilation
Thanks for the explanation! After making sure to route list and map files to the correct locations, my variables, watch, and call stack windows seem to be functioning, however, my breakpoints are still being skipped. Any ideas on what could be causing this? I think it may have to do with some code execution from the includes, but I'm not sure how to tell. Also, is there a way to specify a path to the various files for the project (list, map, exe, dbg, etc)? We have a custom compiler and linker that outputs these files all in very specific directories. Right now I'm getting around this by copying the files after it compiles and link in the com file, but this just seems messy as compared to just using the original files in the location that they are in.

Edit: As a side note, this is the output when I set the break point:
CMD: set break MY_PROGRAM\%line 1030
DBG: %DEBUG-E-LINEINFO, no line 1030, previous line is 1, next line is 2991

Re: Debugging Issues with Fortran

Posted: Tue Sep 24, 2019 12:20 am
by sergey_vorfolomeev
The extension tries to download .LIS and .MAP files from VMS to PC right after the compilation.
Destination is ${workspaceFolder}\OUT\DEBUG\OBJ for .LIS and ${workspaceFolder}\OUT\DEBUG for .MAP
fortran_lis.png
If these folders are empty, the extension could not find and download the files. You may download them manually.
If some files are in these folders, they may not be compatible with the current source files.
Could You please attach source fortran file and corresponding listing file to test?

Re: Debugging Issues with Fortran

Posted: Tue Sep 24, 2019 3:04 pm
by cgoodwin
I do see the lis and map files; it is definitely downloading them and finding them (variable watching works fine). I stripped down the program to a bear-bones application and the break points did work. What I found was that the debugger had issues recognizing which line it was on when I added the include:

Code: Select all

include	'my_logical:mytextlibrary.tlb(my_file_struct)/list'
Is there something I can do to "declare" this as a text library and not step through it when debugging?

Added in 10 minutes 39 seconds:
Just solved the issue! Apparently it didn't like my /list qualifier at the end of that include. Once I removed that, everything worked as expected, breakpoints and all :D