- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear all,
I got stuck with the following error,
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
a.out 00000000004A9F95 Unknown Unknown Unknown
a.out 00000000004A7BB7 Unknown Unknown Unknown
a.out 000000000045DF54 Unknown Unknown Unknown
a.out 000000000045DD66 Unknown Unknown Unknown
a.out 000000000041DB96 Unknown Unknown Unknown
a.out 0000000000421460 Unknown Unknown Unknown
libpthread.so.0 00002B5FF42A8100 Unknown Unknown Unknown
a.out 0000000000406D84 Unknown Unknown Unknown
a.out 000000000040FA83 Unknown Unknown Unknown
a.out 00000000004027FE Unknown Unknown Unknown
libc.so.6 00002B5FF44D6B15 Unknown Unknown Unknown
a.out 00000000004026E9 Unknown Unknown Unknown
I tried to follow the instruction here to solve it,
https://software.intel.com/en-us/articles/determining-root-cause-of-sigsegv-or-sigbus-errors
$ ifort -heap-arrays 256000000
$ ulimit -s unlimited
but none of the above methods worked.
Does anyone know how to deal with this?
Best regards,
Sean Lee
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is additional advice to still try in the cited article. As per Possible cause #3, add –g and –traceback compiler options and rerun. Those will help offer source file/line number information in the traceback you included in your post which should help identify the point of the failure and calling sequence in reaching that point. That information should offer insight about where in the program's source code you need to start investigating for out-of-bound references.
Review the details for the other Possible Causes #4 - #6 and try the –check bounds option mentioned #4. That may offer specific details about a particular array whose bounds were exceeded.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Many thanks!
I checked the bounds and it seems to me that the bounds are OK.
$ ifort -O2 -check bounds -g
$ ifort -O2 -g -traceback
the same error occurred,
Image PC Routine Line Source
a.out 0000000000427DD9 Unknown Unknown Unknown
a.out 000000000043CA54 Unknown Unknown Unknown
a.out 000000000040305F Unknown Unknown Unknown
a.out 00000000004178A6 Unknown Unknown Unknown
a.out 00000000004027FE Unknown Unknown Unknown
libc.so.6 00007FCC85813B15 Unknown Unknown Unknown
a.out 00000000004026E9 Unknown Unknown Unknown
If I reduce the dimension of the largest array, it works. But I need the large array anyway.
The size of my array is 67000000*7
Kevin D (Intel) wrote:
There is additional advice to still try in the cited article. As per Possible cause #3, add –g and –traceback compiler options and rerun. Those will help offer source file/line number information in the traceback you included in your post which should help identify the point of the failure and calling sequence in reaching that point. That information should offer insight about where in the program's source code you need to start investigating for out-of-bound references.
Review the details for the other Possible Causes #4 - #6 and try the –check bounds option mentioned #4. That may offer specific details about a particular array whose bounds were exceeded.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
>>The size of my array is 67000000*7
make it (these large arrays) allocatable, then allocate it at start of program.
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There are no line numbers displayed in the traceback, which indicates that there are a number of source files that you need to recompile with -traceback and -g. In other words, delete the .o files from your previous compilations and rebuild. Even after you do that, you will not see line numbers in the traceback for routines that are in non-traceback-enabled libraries and for the Fortran RTL and MKL libraries.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear all,
Many thanks, the above issues are solved by
$ ifort -heap-arrays 256000000
$ ulimit -s unlimited
But I got stuck with another problem,
error #7983: The storage extent of the dummy argument exceeds that of the actual argument
I am using mpiifort to compile the code.
Best regards,
Xiangyu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You probably had some checking options turned on when you compiled one or more source files. Code such as
... real :: x(3),r, dummy ... call sub(x,3,r) ... call sub(dummy,-3,r) ... subroutine sub(x,n,r) dimension x(n) .. if(n > 0)then r=sum(x(1:n)) else r=x(-n) endif ...
may work fine without checking, but with checking turned on you may see error messages.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The dummy argument uses the size (array size) as specified within the subroutine (either fixed literal or by way of passed in integer).
The actual argument has the size as known by the caller.
Your caller is making a call using an array (actual argument) that is smaller than that used by the subroutine/function.
*** This may mean that the subroutine/function will be writing past the end of storage of the affected argument.
*** You have a bug that must be fixed
Do not assume everything is good should the program run with the error message suppressed. Errors tend to expose themselves at inopportune times.
Jim Dempsey
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page