Akagi201
10/25/2014 - 12:10 PM

glibc.md

glibc挂掉

  • glibc挂掉时, 据说会把信息写到/dev/tty, 可以让它写到stderr. 这样就要在启动时指定stderr, 不能定向到/dev/null.
  • (ulimit -c unlimited && cd ${ROOT}; ${APP} -c ${CONFIG} >> $log_file 2>&1) 我们脚本是直接append到日志文件的.
  • 可以写到另外的一个文件,譬如加个sys后缀之类的。(ulimit -c unlimited && cd ${ROOT}; ${APP} -c ${CONFIG} >> $log_file.sys 2>&1)

打开glibc内存检查

    // ensure glibc write error to stderr.
    setenv("LIBC_FATAL_STDERR_", "1", 1);
    // ensure glibc to do alloc check.
    setenv("MALLOC_CHECK_", "1", 1);
我打开了glibc的内存检查,如果确认是野指针,我会编译个tcmalloc的内存检查模块去查。野指针是最难查的,不过大怪一般也难碰到。

bug in glibc 2.13