C++短信服务开发实践:从SMPP协议到高并发架构设计
2026/7/20 0:03:52
Electric Fence 不仅能检测内存越界(overruns),还能检测内存下溢(underruns)。内存下溢是指进程向内存块之前的地址写入数据,这种错误可能在指针运算时发生,例如:
char *buf = malloc(1024); ... char *ptr = buf + 10; ... *(ptr - 11) = '\0';要使用 Electric Fence 检测这种下溢,需要设置环境变量EF_PROTECT_BELOW:
$ EF_PROTECT_BELOW=1 ef ./underrun错误会引发SIGSEGV信号,从而定位到产生错误的代码行。