码迷,mamicode.com
首页 > 其他好文 > 详细

fortran程序报错及其解决方式(program received signal sigsegv:segmentation fault-invalid memory reference)

时间:2021-04-07 11:18:05      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ref   watch   内存地址   strong   ram   代号   其他   溢出   receive   

fortran程序报错:

program received signal sigsegv:segmentation fault-invalid memory reference

1x0.......
1x0.......

core dumped

内容解读:1x0等代号代表内存地址,即内存中存储的函数和变量。如果编译时在gfortran后加入-g选项,即可在报错的时候看到该地址对应的函数名称。

报错原因:内存溢出,函数中给变量声明的内存空间太小。

解决方式:gdb调试,watch监视全局变量的内存地址,然后在声明中给变量分配足够的内存空间。

内存溢出的另一种表现:没有报错,但是全局变量的值会发生改变!

这类错误非常隐蔽,当某个变量内存溢出时,会占用其他全局变量的内存空间,导致一些全局变量归零,但是这类错误往往没有任何报错提示,只能一步一步输出,或是在GDB中监控。

fortran程序报错及其解决方式(program received signal sigsegv:segmentation fault-invalid memory reference)

标签:ref   watch   内存地址   strong   ram   代号   其他   溢出   receive   

原文地址:https://www.cnblogs.com/liangxuran/p/14620604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!