免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: charlieli1
打印 上一主题 下一主题

访问空指针与程序死掉 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-06-11 01:24 |只看该作者
原帖由 Alligator27 于 2008-6-11 01:22 发表
跟其它平台一样,没有map的地址。

零页系统用了,或许是历史的原因吧。

缺页,一般都会显示 page fault 的吧

论坛徽章:
0
12 [报告]
发表于 2008-06-11 01:30 |只看该作者

回复 #11 mik 的帖子

Page fault 有诸多原因,其中没有map就seg fault.

论坛徽章:
0
13 [报告]
发表于 2008-06-11 05:29 |只看该作者
原帖由 charlieli1 于 2008-6-10 22:33 发表
1。访问空指针一定会使程序死掉吗?
2。访问空指针致使程序死掉的机制是什么呢?
谢谢

1. 一般会,不一定
2. 默认的异常反应是去死

论坛徽章:
0
14 [报告]
发表于 2008-06-11 08:25 |只看该作者
嗯嗯,感谢上面各位的回答。

论坛徽章:
0
15 [报告]
发表于 2008-06-11 10:11 |只看该作者
在某些嵌入系统中,可以用这个方法来实现reset
void (*p)()=NULL;
p();

论坛徽章:
0
16 [报告]
发表于 2008-06-11 10:52 |只看该作者
原帖由 marxn 于 2008-6-11 10:11 发表
在某些嵌入系统中,可以用这个方法来实现reset
void (*p)()=NULL;
p();

或许在某种系统中,这么做可以导致核弹发送(标准没规定不可以)

论坛徽章:
0
17 [报告]
发表于 2008-06-11 11:44 |只看该作者
在一些特殊系统里是0地址boot,所以才有空函数指针引导进行reset 这种情况发生

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
18 [报告]
发表于 2008-06-11 14:22 |只看该作者
可以将楼主的问题进一步延伸为访问野指针会不会使程序死掉?
这个问题主要看程序所对应的系统平台?
有些系统具有DIY的品质,即系统的全部对某个程序而言都是可控制的。对于这类系统,
DO IT AT YOUR OWN RISK(风险自担)。DOS就是这种系统。在这种系统上使用野
指针,系统是否会死掉与RP有很大关系。
对于另外一些提供任务保护的系统而言,最多只会让该程序死掉,而对系统没有风险。
不知大家注意没有,VC编写的程序,会将临时变量(栈变量)全部初始化为0xcc
这样野指针都会指向0xcccccccc,这肯定会使程序死掉。

论坛徽章:
0
19 [报告]
发表于 2008-06-11 14:25 |只看该作者
原帖由 charlieli1 于 2008-6-10 22:33 发表
1。访问空指针一定会使程序死掉吗?
2。访问空指针致使程序死掉的机制是什么呢?
谢谢


操作系统决定空指针是不是好惹的.

论坛徽章:
0
20 [报告]
发表于 2008-06-11 14:53 |只看该作者
某种程度上系统设计者故意所为.

一个好的系统理想情况应该是有错误就立即死掉. 这样一来错误容易查找排除, 同时有不至于引起恶劣的结果---比如你的银行卡中的钱消失或多了几千万.

遗憾的是还没有系统可以达到最好的状态--- 比如你刚free的一个指针, 再去访问就无法死掉.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP