[C++] 内存保护

C++有内存保护吗,真的有:


http://en.wikipedia.org/wiki/Buffer_overflow_protection


这个只能保护stack上的buffer,不过已经很有作用了。

写越界写坏callstack的概率低了很多。




提醒:如果callstack没有效信息,更有可能是环境版本不匹配。真正写坏callstack这种事情很罕见的。


另外,用ldd命令可以看两台机器的环境是否一致,注意shared library的地址:

ldd httpd
libz.so.1 => /usr/lib64/libz.so.1 (0x00000033f7e00000)
libm.so.6 => /lib64/libm.so.6 (0x00000033f7200000)

ldd httpd
libz.so.1 => /usr/lib64/libz.so.1 (0x0000003b2cc00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003b2c400000)


如果两台机器的动态库加载地址不一致,则core文件也不能跨机器调试。


你可能感兴趣的:([C++] 内存保护)