Estou assumindo que você está usando bash embora isso funcione para sh e csh também.
Primeiro: defina o núcleo ulimit como diferente de zero (para que você possa criar um dump principal). man bash
e procure por ulimit. %código%. O padrão bash é NO core dump e deve ser inserido novamente toda vez que uma nova janela for aberta ou uma nova sessão for iniciada.
Segundo: Execute seu programa e em outra janela ulimit -c <max size of core dump>
para ver se os programas ainda estão em execução e obtenha um dump principal. Veja kill -3 <pid>
e a opção "SIGQUIT" ou "-3".
Terceiro. Use man 7 signal
para ver a instrução que causou o problema. Você terá que compilar o programa usando a opção "-g". %código%. gdb
pode ser usado para depurar interativamente. (E está muito além da pergunta que você fez).
Do que você mencionou na sua pergunta, você não está manipulando o EOF corretamente para "< input" ou stdin e não está saindo do loop de comando e parando. Ou você está em um loop infinito ou esperando por entrada em um submenu. O gdb <fortran executable name> core
finalmente mata o processo EXATAMENTE onde está pendurado.
O Ctrl + z está suspendendo o programa fortran em execução. O executável ainda está em execução quando ele é interrompido. Se você digitar o comando gdb
para foreground, o programa fortran continuaria de onde estava antes do Ctrl + z .