Fortran Coder

查看: 10060|回复: 5
打印 上一主题 下一主题

[调试器] GDB调试fortran程序,如何查看派生类型数据

[复制链接]

62

帖子

14

主题

0

精华

专家

F 币
557 元
贡献
326 点
跳转到指定楼层
楼主
发表于 2015-5-22 19:17:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 安靖 于 2015-5-22 20:59 编辑

用gdb调试Fortran程序,如何查看派生类型数据?
例如,查看ndim就可以直接输入:   p data%ndim但是要查看coorn里的数据是什么命令呢? coorn是动态分配的数组
我输入 p data%coorn 提示 =<object is not allocated>
但是coorn明明已经分配好内存了

[Fortran] 纯文本查看 复制代码
!   test2.f90
program main
        use comm_data
        implicit none
        type(core_data) :: data


        call allo_core_data( data, 2, 4)
        data % coorn = 4.0

        write(*,*) data % coorn

        stop
end program main

! comm_data.f90
module comm_data
        implicit none
        
        save
        
        type core_data                
                integer ndim                
                integer npoint
                real,    allocatable, dimension(:,:) :: coorn                
        end type core_data        
        
        contains

subroutine allo_core_data(        data, ndim, npoint )
        implicit none
        type(core_data), intent(out) :: data
        integer, intent(in) :: npoint
        integer, intent(in) :: ndim
        
        data % ndim = ndim
        data % npoint = npoint
        
        allocate( data % coorn( data % ndim, data % npoint ) )
        data % coorn = 0.0
        
end subroutine allo_core_data


end module comm_data


makefile

TARGET  = test.out
GC        = ifort
CFLAGS  = -fpp -g
SOR        = comm_data.f90 test2.f90
OBJS        = test2.o comm_data.o
$(OBJS):
        @echo "-----------------------------------"
        @echo "Compiling..."
        @echo "-----------------------------------"
        @$(GC) $(CFLAGS) -c $(SOR) $(INCLUDE)
        @echo "-----------------------------------"
        @echo "Linking..."
        @echo "-----------------------------------"
        @$(GC) $(CFLAGS) -o $(TARGET) $(OBJS) $(LIBS)
        @echo "-----------------------------------"
        @echo "Deleting OBJ & MOD files..."
        @echo "-----------------------------------"
        @rm -fr *.o
        @echo "-----------------------------------"
clean:
        @rm -fr *.o *.mod
        @rm -fr $(TARGET)



test2.f90

174 Bytes, 下载次数: 0

comm_data.f90

547 Bytes, 下载次数: 0

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

62

帖子

14

主题

0

精华

专家

F 币
557 元
贡献
326 点
沙发
 楼主| 发表于 2015-5-22 21:03:10 | 只看该作者
makefile文件不能添加附件,只能手工复制了

62

帖子

14

主题

0

精华

专家

F 币
557 元
贡献
326 点
板凳
 楼主| 发表于 2015-5-23 17:34:21 | 只看该作者
看来用gdb的人不多啊

6

帖子

0

主题

0

精华

入门

F 币
57 元
贡献
30 点
地板
发表于 2015-6-15 08:57:04 | 只看该作者
您用ifort配合gdb?确实没试过,不过如果是windows版本的话,用打过董兄(xunxun)的补丁的gdb就可以用print显示结构内数据及动态数组数据了。

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

5#
发表于 2015-6-15 13:42:44 | 只看该作者
小爱,么么哒

62

帖子

14

主题

0

精华

专家

F 币
557 元
贡献
326 点
6#
 楼主| 发表于 2015-7-2 12:04:15 | 只看该作者
好小爱新 发表于 2015-6-15 08:57
您用ifort配合gdb?确实没试过,不过如果是windows版本的话,用打过董兄(xunxun)的补丁的gdb就可以用print显 ...

linux版本的。 后来也是没有解决掉,只靠write慢慢调试
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-24 03:00

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表