Memory corruption通常是因为向一个不属于本身的内存中写数据或者是本身的内存值被损坏致使的。Memory corruption是属于很难分析的一类bug,主要是由于当某个内存中的值被损坏的时候,在这个损坏内存的现场,通常不会暴露出什么问题。这个被损坏的内存值有可能潜伏在其余数据结构中很长时间,而且会随着程序的运行不断的传播变异,致使最终很难定位到问题的根源。
Memory corruption在不一样的状况下会有不一样的症状,好比crash,这是因为程序访问无效内存地址致使的,这就是咱们常说的memory segmentation fault或者access violation exception,这就意味着当前指令所访问的内存地址不属于该进程的地址空间。还有一种状况,程序访问的地址是合法的,可是地址中的值是非法的,这个非法值就像是个定时炸弹,随时可能致使程序出现奇怪的行为。数据结构