关注
segment fault 是段错误,通常在非法内存访问,读写的时候会报这个错误。 一、比较常见的错误情况如下 1:赋值操作(非法地址写) 2:数组越界 (非法地址读 或 写) 相当于执行了putchar(a[3]),a[3]是"\0",在内存中是00,也是个常见的非法内存访问 3:内存(字符串)拷贝 (非法地址读 或 写) 4:非法地址执行(栈溢出,任意地址执行时可能出现这种情况) 这条指令 == call 0xdeadbeef,0xdeadbeef 是个非法地址,所以会报段错误。 还有一些暂时想不起来的,不过原理也是非法内存访问和读写。 二、知道了错误的成因就可以知道怎么检测了。 1:printf 大法 最简单的往往是最常用的,printf一下地址,变量。 2:调试的方法 利用gdb, asan这些工具可以很快定位到segment fault的地址 是一个0地址写的seg fault 3:catchsegv 指令 是一个输出segfault 时寄存器的内容。 暂时想到这么多,写的东西也不是很深,其实段错误是很好检测的,因为一旦发生段错误,os就会请求中断或者发出信号来结束程序。要在编译时候检测,借助gcc+asan这种内存检查工具才可行,即便是asan也可能存在疏漏。windows下也有成熟独立的体系,原理相同就不多说了。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
06-16 18:15
湖南人文科技学院 Java 湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得实习能学到东西吗 #
35648次浏览 709人参与
# 百度工作体验 #
222971次浏览 1970人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
27696次浏览 216人参与
# 秋招什么时候开投比较合适? #
23004次浏览 312人参与
# 机械人与华为的爱恨情仇 #
116998次浏览 946人参与
# 实习,不懂就问 #
45862次浏览 687人参与
# 发工资后,你做的第一件事是什么 #
68091次浏览 229人参与
# 机械人集合!你是什么工程师? #
15738次浏览 89人参与
# 找不到好工作选择GAP真的丢人吗 #
78161次浏览 938人参与
# 我想去国央企的原因 #
59895次浏览 393人参与
# 如何准备秋招 #
20171次浏览 386人参与
# 工作中哪个瞬间让你想离职 #
25822次浏览 177人参与
# 入职第四天,心情怎么样 #
29376次浏览 417人参与
# 拼多多工作体验 #
28475次浏览 197人参与
# 多益网络求职进展汇总 #
29155次浏览 134人参与
# 快手求职进展汇总 #
546943次浏览 6001人参与
# 硬件应届生薪资是否普遍偏低? #
74012次浏览 514人参与
# 不考虑转正,实习多久合适 #
32191次浏览 145人参与
# 面试中,你被问过哪些奇葩问题? #
68481次浏览 796人参与
# 你们公司几号发工资 #
21075次浏览 140人参与
# 如果再来一次,你还会学硬件吗 #
125666次浏览 1402人参与