Когда возникает исключение, я хотел бы закончить аномально мою программу. Прямо сейчас, когда происходит исключение, вызывается оператор write
с объяснительным предложением, а затем вызывается оператор stop
.Как остановить программу fortran аномально
я отладка программы с idb
(интелом отладчика), когда исключение происходит, я получаю write
заявления, но idb
лечит программы, как правило, прекращаются. Я хотел бы, чтобы, когда происходит исключение, программа прерывается ненормально и поэтому я могу посмотреть в память с backtrace
в том месте, где произошло исключение.
Я попытался изменить stop
в stop 1
, так что возвращается ненулевое значение, но это не работает
EDIT:
Я выполнил решение в одном из ответа:
interface
subroutine abort() bind(C, name="abort")
end subroutine
end interface
print *,1
call abort()
print *,2
end
с этим решением Я все еще не получаю обратную линию, когда использую ifort 13.0.1
, но это отлично работает с ifort 14.0.2
.
Я использовал idb
вместо gdb
, так как часто последние не могут считывать значения распределяемых массивов в fortran
.
Что вы подразумеваете под этим не работает? –
@francescalus 'error stop' также дает' program exited normal' – simona