Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Debugging Dialog module routines

Stephen_Sutcliffe
New Contributor II
519 Views

I am getting an intermittent error in the dialog box module within a fortran windows application and am trying to track down the cause. The stack traceback indicates that the crash occurs in the ControlAddString function, called from DlgSetChar and DlgModal within iflogm module. The error given is Access Violation but I only get the disassembly listing in the debugger. I'm using the latest version of the compiler (18.2) though I am sure that in previous versions I was able to step into the modules such as iflogm but this no longer seems to be the case.

Often when I simply relaunch the application from within the debugger everything appears to work fine making it difficult the find the root cause of the problem. It would be helpful if the source of the iflogm modules could be made accessible to the debugger so that I can interrogate the variables in the dialog structure. Is this still possible and if so how can I set up VS 2015 debugging to achieve this?

Has anyone else had similar issues? Any ideas would be appreciated.

0 Kudos
3 Replies
Steve_Lionel
Honored Contributor III
519 Views

The Fortran source of IFLOGM is in the INCLUDE folder (iflogm.f90). It does call some C routines whose sources aren't provided. You would need to add the source to your project and build it to get the debug information.

0 Kudos
Stephen_Sutcliffe
New Contributor II
519 Views

Thanks Steve,

When I compile I'm getting lots of warnings, is it safe to ignore these?

1>------ Build started: Project: Modules, Configuration: ExpDbg x64 ------
1>Compiling with Intel(R) Visual Fortran Compiler 18.0.2.185 [Intel(R) 64]...
1>iflogm.f90
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(642): warning #5117: Bad # preprocessor line
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(644): warning #5117: Bad # preprocessor line
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(696): warning #5117: Bad # preprocessor line
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(698): warning #5117: Bad # preprocessor line
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(3764): warning #5117: Bad # preprocessor line
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(3928): warning #5117: Bad # preprocessor line
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(816): warning #6075: The data type of the actual argument does not match the definition.   [HINST]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(881): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1422): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1425): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1430): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1445): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1447): warning #6075: The data type of the actual argument does not match the definition.
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1450): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1452): warning #6075: The data type of the actual argument does not match the definition.
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1455): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1475): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1499): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1512): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1530): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1533): warning #6075: The data type of the actual argument does not match the definition.   [IOR]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1537): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1541): warning #6075: The data type of the actual argument does not match the definition.   [IOR]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1553): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1555): warning #6075: The data type of the actual argument does not match the definition.   [IOR]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1559): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1569): warning #6075: The data type of the actual argument does not match the definition.
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1572): warning #6075: The data type of the actual argument does not match the definition.
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1583): warning #6075: The data type of the actual argument does not match the definition.   [I2]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1601): warning #6075: The data type of the actual argument does not match the definition.
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1612): warning #6075: The data type of the actual argument does not match the definition.   [LOGVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1690): warning #6075: The data type of the actual argument does not match the definition.
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1695): warning #6075: The data type of the actual argument does not match the definition.   
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1716): warning #6075: The data type of the actual argument does not match the definition.
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1736): warning #6075: The data type of the actual argument does not match the definition.
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1780): warning #6075: The data type of the actual argument does not match the definition.
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1797): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1880): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1886): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1892): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1898): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1902): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1906): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1910): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1916): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1920): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1927): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1932): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1936): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1940): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1944): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1948): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1954): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1958): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1968): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(1986): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2008): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2189): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2197): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2205): warning #6075: The data type of the actual argument does not match the definition.   [DLGID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2211): warning #6075: The data type of the actual argument does not match the definition.   [IAND]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2215): warning #6075: The data type of the actual argument does not match the definition.   [IDFROM]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2219): warning #6075: The data type of the actual argument does not match the definition.   [IAND]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2229): warning #6075: The data type of the actual argument does not match the definition.   [DLGID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2240): warning #6075: The data type of the actual argument does not match the definition.   [DLGID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2299): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2392): warning #6075: The data type of the actual argument does not match the definition.   [ID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(3594): warning #6075: The data type of the actual argument does not match the definition.   [CONTROLID]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(842): remark #7712: This variable has not been used.   [ENVVAL]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(852): remark #7712: This variable has not been used.   [VARVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(862): remark #7712: This variable has not been used.   [OLEINITIALIZE_PTR]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2509): remark #7712: This variable has not been used.   [DLLHINST]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(863): remark #7712: This variable has not been used.   [DLLHINST]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2510): remark #7712: This variable has not been used.   [LRET]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(864): remark #7712: This variable has not been used.   [LRET]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2575): remark #7712: This variable has not been used.   [INTVALUE]
1>C:\Program Files (x86)\Intel\Composer XE 2015\compiler\include\iflogm.f90(2508): remark #7712: This variable has not been used.   [OLEUNINITIALIZE_PTR]

0 Kudos
Steve_Lionel
Honored Contributor III
519 Views

Grumble. It's been years since I have done this. I know I once got it to work, but it definitely has some 64-bit issues. You at least need to enable the preprocessor, but there's more than that. It builds ok in 32-bit. At this point I am not sure what to suggest, unless you can build and debug your app in 32-bit mode. Clearly Intel is building it but there's more than just changing integer size.

0 Kudos
Reply