Пример #1
0
static void dbg_output(int level,const char* prefix, const char* format, va_list ap,
                       const char* alarmComp = 0, const char* alarmInfo = 0)
{
    bool out = (s_output || s_intout) && (prefix || format);
    bool alarm = alarmComp && format && s_alarms;
    if (!(out || alarm))
        return;
    char buf[OUT_BUFFER_SIZE];
    unsigned int n = Debugger::formatTime(buf,s_fmtstamp);
    unsigned int l = s_indent*2;
    if (l >= sizeof(buf)-n)
        l = sizeof(buf)-n-1;
    ::memset(buf+n,' ',l);
    n += l;
    buf[n] = 0;
    l = sizeof(buf)-n-2;
    if (prefix)
        ::strncpy(buf+n,prefix,l);
    n = ::strlen(buf);
    l = sizeof(buf)-n-2;
    char* msg = buf+n;
    if (format) {
        ::vsnprintf(msg,l,format,ap);
        buf[OUT_BUFFER_SIZE - 2] = 0;
    }
    if (out)
        common_output(level,buf);
    if (alarm) {
        out_mux.lock();
        if (s_alarms)
            s_alarms(msg,level,alarmComp,alarmInfo);
        out_mux.unlock();
    }
}
Пример #2
0
void Output(const char* format, ...)
{
    char buf[OUT_BUFFER_SIZE];
    if (!((s_output || s_intout) && format && *format))
        return;
    if (reentered())
        return;
    va_list va;
    va_start(va,format);
    ::vsnprintf(buf,sizeof(buf)-2,format,va);
    va_end(va);
    common_output(-1,buf);
}
Пример #3
0
void Output(const char* format, ...)
{
    char buf[OUT_BUFFER_SIZE];
    void (*relay)(int,const char*,const char*,const char*) = s_relay;
    if (!((s_output || s_intout || relay) && format && *format))
	return;
    if (reentered())
	return;
    va_list va;
    va_start(va,format);
    ::vsnprintf(buf,sizeof(buf)-2,format,va);
    va_end(va);
    if (relay)
	relay(-1,buf,0,0);
    else
	common_output(-1,buf);
}
Пример #4
0
static void dbg_output(int level,const char* prefix, const char* format, va_list ap)
{
    if (!(s_output || s_intout))
	return;
    char buf[OUT_BUFFER_SIZE];
    unsigned int n = Debugger::formatTime(buf,s_fmtstamp);
    unsigned int l = s_indent*2;
    if (l >= sizeof(buf)-n)
	l = sizeof(buf)-n-1;
    ::memset(buf+n,' ',l);
    n += l;
    buf[n] = 0;
    l = sizeof(buf)-n-2;
    if (prefix)
	::strncpy(buf+n,prefix,l);
    n = ::strlen(buf);
    l = sizeof(buf)-n-2;
    if (format) {
	::vsnprintf(buf+n,l,format,ap);
	buf[OUT_BUFFER_SIZE - 2] = 0;
    }
    common_output(level,buf);
}