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++; } }
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); }
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; }
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); } }
Registry::Registry() : next_handle(0) { EnableTrace(false); }
void InitLogger() { LogFeature = calloc(TOTAL_FEATURE, sizeof(struct LoggerFeature)); //EnableTrace(ARP, ALL); EnableTrace(TCP, ALL); }