vfprintf.c: No such file or directory.

void BaseLog::Error(const char * format, ...)
{
    if (!isShow(ERROR)) return;
    va_list vp;
    int cnt;
    char strLog[MAX_LOGLINE_LEN];
    va_start(vp, format);
    cnt = vsnprintf(strLog, sizeof(strLog)-1, format, vp);
    va_end(vp);
    LogLine line(ERROR, strLog);
    WriteLog(line);
}
Program received signal SIGSEGV, Segmentation fault.
0xb7c70163 in _IO_vfprintf_internal (s=s@entry=0xbfff9f10, format=<optimized out>, format@entry=0x810aeef "%d%s", ap=0xbffff500 "\340\256\020\ba\260÷T\346Y\267\220\364\377\277", ap@entry=0xbffff4f8 "U5&\032\b\003")
    at vfprintf.c:1661
1661    vfprintf.c: No such file or directory.
(gdb) bt
#0  0xb7c70163 in _IO_vfprintf_internal (s=s@entry=0xbfff9f10, format=<optimized out>, format@entry=0x810aeef "%d%s", ap=0xbffff500 "\340\256\020\ba\260÷T\346Y\267\220\364\377\277", ap@entry=0xbffff4f8 "U5&\032\b\003")
    at vfprintf.c:1661
#1  0xb7c8ffa3 in _IO_vsnprintf (string=0xbfffa044 "438711637", maxlen=<optimized out>, format=0x810aeef "%d%s", args=0xbffff4f8 "U5&\032\b\003") at vsnprintf.c:119
#2  0x08089621 in BaseLog::Error (this=0xbffff534, format=0x810aeef "%d%s") at LogUtil.cpp:107

查了半天,问题出在调用处:

log->Error("%d%s", 3333333333333, "ssssssssssssss"); // 错误,整型溢出