Что делает test_gdb
, если вы запустите его снаружи gdb? Если он не выводит вывод на экран, то это (то есть нет вывода) именно то, что вы увидите при его запуске внутри из gdb - если вы не установили точки останова. Вы установили точку останова? И сколько ничего не происходит, когда вы нажимаете run
? Даже если test_gdb
не производит никакого вывода, если все хорошо, вы должны по-прежнему видеть GDB отображать уведомления как
[Inferior 1 (process 12345) exited normally]
Рассмотрим test.f
:
Program p
Integer :: i = 1
Print *, i
End
Я бы скомпилировать это с gfortran -ffree-form -g -ggdb test.f -o test_gdb
.
(От https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Debugging-Options.html#Debugging-Options:.
-ggdb
Produce отладочную информацию для использования GDB Это означает, что использовать наиболее выразительный формат доступный (DWARF 2, наносит удар, или собственный формат, если ни один из те, поддерживаются), в том числе GDB расширения, если это вообще возможно.
)
Тогда, как вы сказали, перейдите к Tools -> Debugger (GDB)
(или введите M-x gdb
) в emacs и убедитесь, что вызов gdb использует полный путь к исполняемому файлу, например. Run gdb (like this): gdb -i=mi /foo/bar/test_gdb
. Хит возвращается в этом минибуфере.
Теперь установить контрольную точку в новом *gud-test_gdb*
буфере:
(gdb) break p
Breakpoint 1 at 0x4007e1: file test.f, line 3.
Затем перейдите к пункту меню Gud -> Run
.