Я отлаживал следующий фрагмент кода в Cygwin и Eclipse, используя gdb в качестве отладчика:
program codetest
implicit none
integer, parameter :: dp = kind(1.0d0)
integer, parameter :: N = 10
real(dp), dimension(:), allocatable :: vector
integer :: i
allocate(vector(1:N))
forall(i = 1:10)
vector(i) = sqrt(real(i, dp))
end forall
write(*, '(F7.3, 1X)', advance = 'no') (vector(i), i = 1, N)
deallocate(vector)
end program codetest
При запуске gdb я пытаюсь распечатать выделяемый массив «вектор» после его выделения, но в итоге получаю следующее:
(gdb) p vector
Unhandled dwarf expression opcode 0x97
Я прошерстил Stack Overflow и Google, но не нашел ничего, что касалось бы сути вопроса. Я проверил следующее,
- http://numericalnoob.blogspot.be/2012/08/fortran-allocatable-arrays-and-pointers.html
- Необработанное карликовое выражение
- Выделяемый массив Fortran для печати в gdb
но я до сих пор не понимаю, в чем проблема и как ее исправить. Я получил ту же жалобу от gdb в Eclipse (выпуск Mars.1, 4.5.1) при попытке распечатать/отобразить содержимое производного типа. Текущие характеристики моей машины/компилятора/отладчика включают следующее:
- Windows 8.1
- версия gfortran: GNU Fortran (GCC) 4.9.3
- версия gdb: GNU gdb (GDB) 7.8
Любая помощь приветствуется.