lldb 可以与 fortran 一起使用吗?

2024-01-14

我正在尝试对 Fortran 程序设置断点lldb在 Mac OS 10.12.5 系统上。我有

program badcall
      integer a,b
      a=2
      b=3

write(*,*) a, b
end

I (have to)使用英特尔编译器进行编译。

ifort -g badcall.f90 -o badcall

然后我跑lldb and do

breakpoint set -f badcall.f90 -l 5

程序正常停止

Process 59474 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #0: 0x0000000100000f35 prova`MAIN__ at badcall.f90:6
   3          a=2
   4          b=3
   5          

但是,如果我随后尝试打印变量b我什么也没得到

(lldb) p b
(lldb) print b
(lldb) q

那么我错过了什么吗?是lldb真的可以用来调试fortran代码吗?


lldb 似乎还不支持 Fortran,但是:( 你必须使用 gdb:

curl "http://ftp.gnu.org/gnu/gdb/gdb-8.0.tar.gz" -o gdb-8.0.tar.gz
tar zxf gdb-8.0.tar.gz
cd gdb-8.0
./configure
make

确保对 gdb 进行代码签名!请按照此处的说明操作:

https://gcc.gnu.org/onlinedocs/gcc-4.8.1/gnat_ugn_unw/Codesigning-the-Debugger.html https://gcc.gnu.org/onlinedocs/gcc-4.8.1/gnat_ugn_unw/Codesigning-the-Debugger.html

你应该可以走了

gfortran -g -o fort_sample ./fort_sample.f90
gdb ./fort_sample
(gdb) list
1   program badcall
2         integer a,b
3         a=2
4         b=3
5
6   write(*,*) a, b
7   end
(gdb) break 6
Breakpoint 1 at 0x100000e0e: file ./fort_sample.f90, line 6.
(gdb) run
...
...
badcall () at ./fort_sample.f90:6
6   write(*,*) a, b
(gdb) print a
$1 = 2
(gdb) print b
$2 = 3
(gdb)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lldb 可以与 fortran 一起使用吗? 的相关文章

随机推荐