0

My Fortran code has a memory issue and since I compiled it with Intels -traceback option it will show me:

forrtl: severe (41): insufficient virtual memory
Image              PC                Routine            Line        Source
fleur_MPI          0000000000F00CFC  for_alloc_allocat     Unknown  Unknown
fleur_MPI          0000000000A32BAA  Unknown               Unknown  Unknown
fleur_MPI          00000000009E4392  Unknown               Unknown  Unknown
fleur_MPI          00000000008CB602  Unknown               Unknown  Unknown
fleur_MPI          00000000009226F8  Unknown               Unknown  Unknown
fleur_MPI          000000000091E051  Unknown               Unknown  Unknown
fleur_MPI          0000000000419967  Unknown               Unknown  Unknown
fleur_MPI          00000000004A9DA0  Unknown               Unknown  Unknown
fleur_MPI          00000000004A5350  Unknown               Unknown  Unknown
fleur_MPI          0000000000416BAE  Unknown               Unknown  Unknown
libc-2.17.so       00002B75726A7505  __libc_start_main     Unknown  Unknown
fleur_MPI          0000000000416AA9  Unknown               Unknown  Unknown
 Signal           15  detected on PE:           3

It only shows me the deepest 12 entries of the stacktrace, which are not very usefull, since they don't have the -g option.

How can I increase the length of the stack traces I get? It seems this question is only answered for Java, but not Fortran (or even C).

Ian Bush
  • 6,996
  • 1
  • 21
  • 27
Stein
  • 3,179
  • 5
  • 27
  • 51
  • Any reason you can't add the `-g` flag to the config as described here https://www.flapw.de/MaX-4.0/documentation/installation/#configure – RussF May 08 '20 at 07:03
  • The `-g` Flag is set by default. The problem with this part is, that it's automatically generated OpenMP code, which doesn't generate debugging symbols. – Stein May 08 '20 at 07:16
  • Do you have a core file? If does ulimit -c unlimited and rerunning generate one? Once you have one does stepping up the call tree with a debugger tell you what you need? – Ian Bush May 08 '20 at 08:37
  • Maybe you could run it with `valgrind`. This has a plethora of options which allow you to do stack-traces, find memory leaks ... and much more. [How do I use valgrind to find memory leaks?](https://stackoverflow.com/questions/5134891/how-do-i-use-valgrind-to-find-memory-leaks) – kvantour May 08 '20 at 09:36
  • Valgrind in not feasible, because the code runs for several hours without valgrind. I also tried to generate coredumps, but they aren't created – Stein May 09 '20 at 09:56

0 Answers0