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

Run time error with release win32 version

Dongying_Q_
Beginner
2,590 Views

Can somebody tell me why i can compile & run the same code with debug win32, debug x64, and release x64, but give me the run time error with release win32 version even i can pass the compiler? I am using Intel parallel studio 2015.

Janice

 

0 Kudos
8 Replies
Steven_L_Intel1
Employee
2,590 Views

Please show us the full and complete text of the error message, and if possible, a small but complete test case that shows the error.

0 Kudos
TimP
Honored Contributor III
2,590 Views

There certainly are possibilities for this to happen, but without information from you it's not worth speculating.

0 Kudos
Dongying_Q_
Beginner
2,590 Views

Thanks, Steve & Tim:

I am new to Visual Studio IDE. When i ran the program inside the Visual Studio in release Win32 mode, it popped out a "No Debugging Information" window saying "Debugging information for "HTRMODEL.exe" cannot be found or does not match. Binary was not built with debug information. Do you want to continue debugging?"  I click the "yes" button, looks like running in debug mode. I have some interactive inputs during the run. On the Dos run window, it shows "forrl: severe <157>: program exception - access violation" error with a list of error place (although it all shows "unknown" on the routine, line and source entry). While on the Visual Studio output window, these are the outputs:

'HTRMODEL.exe' (Win32): Loaded 'C:\Users\DQ01\Documents\PYPS_new\IntelFortran\HTRMODEL\Release\HTRMODEL.exe'. Module was built without symbols.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\libifcoremd.dll'. Cannot find or open the PDB file.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\libmmd.dll'. Cannot find or open the PDB file.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imagehlp.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\libifportmd.dll'. Cannot find or open the PDB file.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\lpk.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\usp10.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr120.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Symbols loaded.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msctf.dll'. Symbols loaded.
First-chance exception at 0x00B06F11 in HTRMODEL.exe: 0xC0000005: Access violation writing location 0x02607000.
'HTRMODEL.exe' (Win32): Loaded 'C:\Program Files (x86)\Intel\Composer XE 2015\redist\ia32\compiler\1033\ifcore_msg.dll'. Module was built without symbols.
'HTRMODEL.exe' (Win32): Loaded 'C:\Program Files (x86)\Intel\Composer XE 2015\redist\ia32\compiler\1033\irc_msg.dll'. Module was built without symbols.
'HTRMODEL.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dbghelp.dll'. Symbols loaded.
Unhandled exception at 0x00B06F11 in HTRMODEL.exe: 0xC0000005: Access violation writing location 0x02607000.

0 Kudos
Steven_L_Intel1
Employee
2,590 Views

Ok. When you want to run a release configuration, use "Start without debugging" (CTRL+F5).

The error is access violation. It is often the case that coding errors show up in a release configuration due to optimization. The first thing I would do is set Fortran > Run-Time > Generate Traceback Information to Yes. Then when you run the program again you'll be told where the error occurred, which will give you a clue. (Telling us where it is won't help us help you because you haven't shown the code.)

Unfortunately, release-only errors can be difficult to diagnose.

0 Kudos
Greg_T_
Valued Contributor I
2,590 Views

In addition to the traceback information, it may also help to add output from your program to a debugging text file so that you can get information from your program while running as a Release version.  You could set up the text debug log file something like this, so that you can turn the logical variable "debugFlag" on and off as needed:

! set the flag, file unit, and debugging file name
 debugFlag = .TRUE. ! T=write debugging information, F=debugging information not written 
 debugUnit = 99
 debugFile = 'debug_info.txt'

! open the debug file the first time with status='unknown' 
 if(debugFlag)then
  open(unit=debugUnit,file=debugFile,status='unknown')
  write(debugUnit,*)
  write(debugUnit,*)'example of your message or information here'
  write(debugUnit,*)'             x_variable =',x_variable
  write(debugUnit,*)'             y_variable =',y_variable
  close(unit=debugUnit)
 end if

! to append more information to the debug file open with position='append'
 if(debugFlag)then
  open(unit=debugUnit,file=debugFile,position='append')
  write(debugUnit,*)
  write(debugUnit,*)'example of the next output to check the variables'
  write(debugUnit,*)'             x_variable =',x_variable
  write(debugUnit,*)'             y_variable =',y_variable
  close(unit=debugUnit)
 end if

 

Perhaps put the debugging output before and after the crash location indicated by traceback to check on variables during run-time.

Regards,
Greg

 

0 Kudos
gib
New Contributor II
2,590 Views

In addition to turning on Traceback info, as Steve suggested, I would select Fortran > Run-time > Runtime Error Checking > All.  Do you know how to access these compiler options?  Regarding writing out debugging info as the program runs, it is easier and often sufficient to simply use

write(*,*) 'x = ',x

to write to the console.

0 Kudos
Dongying_Q_
Beginner
2,590 Views

I have enabled "Generate Traceback Information" to Yes. These are the output of the run. Can you tell me which subroutine has problem?

The thing puzzling me is that, it is the identical source code, why it works for debug win32/64 as well as release 64. It only does not work for release win32. To me, the code itself should not have any problems. 

 

0 Kudos
Steven_L_Intel1
Employee
2,590 Views

Line 114 in CALC_CONVEC_BANK. That you don't see problems in other configurations doesn't mean anything

0 Kudos
Reply