Ejemplo n.º 1
0
void ParseTraceOptions( const char *options )
{
	if (!options)
	{
		EnableTrace( "syscall" );
		return;
	}

	const char *x, *p = options;
	unsigned int len;
	char str[10];
	while (*p)
	{
		x = strchr( p, ',' );
		if (x)
			len = x - p;
		else
			len = strlen( p );

		len = std::min( len, sizeof str );
		memcpy( str, p, len );
		str[len] = 0;
		EnableTrace( str );
		p += len;
		if ( *p == ',')
			p++;
	}
}
Ejemplo n.º 2
0
HRESULT
CTraceSession::StartTraceSession()
{
    if (m_EventTraceProperties == nullptr)
        return HRESULT_FROM_WIN32(ERROR_BAD_CONFIGURATION);;

    if (m_TraceName.empty())
        return HRESULT_FROM_WIN32(ERROR_BAD_CONFIGURATION);;

    DWORD dwError;
    dwError = StartTraceW(&m_TraceHandle,
                          m_TraceName.c_str(),
                          m_EventTraceProperties);
    if (dwError == ERROR_SUCCESS)
    {
        for (CTraceProvider *Prov : m_TraceProviders)
        {
            dwError = EnableTrace(TRUE, 0, 0, &Prov->ProviderGuid, m_TraceHandle);
            if (dwError != ERROR_SUCCESS)
                break;
        }
    }

    if (dwError != ERROR_SUCCESS)
    {
        StopTraceSession();
    }

    return HRESULT_FROM_WIN32(dwError);
}
Ejemplo n.º 3
0
static
BOOL
StartTraceListening (
    __out PTRACEHANDLE SessionHandle,
    __out PTRACE_PROPERTIES Properties,
    __out PTRACEHANDLE ConsumingHandle
    )
{
    EVENT_TRACE_LOGFILE TraceLogfile;

    RtlZeroMemory(Properties, sizeof(*Properties));
    Properties->TraceProperties.Wnode.BufferSize = sizeof(*Properties);
    Properties->TraceProperties.Wnode.Flags = WNODE_FLAG_TRACED_GUID;
    Properties->TraceProperties.Wnode.Guid = SESSION_GUID;    
    Properties->TraceProperties.LogFileMode = EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING 
                                            | EVENT_TRACE_USE_PAGED_MEMORY 
                                            | EVENT_TRACE_REAL_TIME_MODE;
    Properties->TraceProperties.LogFileNameOffset = 0;
    Properties->TraceProperties.LoggerNameOffset = FIELD_OFFSET(TRACE_PROPERTIES, LoggerName);

    if (StartTrace(SessionHandle, LOGGER_NAME, &Properties->TraceProperties) != ERROR_SUCCESS) {
        PrintError("StartTrace failed", GetLastError());
        return FALSE;
    }

    if (EnableTrace(TRUE, 0, TRACE_LEVEL_INFORMATION, &PROVIDER_GUID, *SessionHandle) != ERROR_SUCCESS) {
        PrintError("EnableTrace failed", GetLastError());
        return FALSE;
    }

    RtlZeroMemory(&TraceLogfile, sizeof(TraceLogfile));
    TraceLogfile.LoggerName = LOGGER_NAME;
    TraceLogfile.ProcessTraceMode = PROCESS_TRACE_MODE_REAL_TIME;
    TraceLogfile.EventCallback = TraceCallback;

    if ((*ConsumingHandle = OpenTrace(&TraceLogfile)) == INVALID_PROCESSTRACE_HANDLE) {
        PrintError("OpenTrace failed", GetLastError());
        return FALSE;
    }

    if (ProcessTrace(ConsumingHandle, 1, NULL, NULL) != ERROR_SUCCESS) {
        PrintError("ProcessTrace failed", GetLastError());
        return FALSE;
    }

    return TRUE;
}
Ejemplo n.º 4
0
void UserMain( void * pd )
{
    Config();
    initWithWeb();
    EnableSmartTraps();

    iprintf("Application: %s\r\nNNDK Revision: %s\r\n",AppName,GetReleaseTag());
    getchar();
    EnableTrace(CS_NUM);
    while(1) {
//        for (uint16_t i = 0; i < 512; i++) {
//            trace = i;
//        }
        iprintf("SR: 0x%04X\n", GetSR_IntLevel());
        OSTimeDly(TICKS_PER_SECOND);
    }
}
Ejemplo n.º 5
0
Registry::Registry()
	: next_handle(0)
{
	EnableTrace(false);
}
Ejemplo n.º 6
0
void InitLogger()
{
    LogFeature = calloc(TOTAL_FEATURE, sizeof(struct LoggerFeature));
    //EnableTrace(ARP, ALL);
    EnableTrace(TCP, ALL);
}