FVisualLogger::FVisualLogger() { BlockAllCategories(false); AddDevice(&FVisualLoggerBinaryFileDevice::Get()); SetIsRecording(GEngine ? !!GEngine->bEnableVisualLogRecordingOnStart : false); SetIsRecordingOnServer(false); if (FParse::Param(FCommandLine::Get(), TEXT("EnableAILogging"))) { SetIsRecording(true); SetIsRecordingToFile(true); } }
void DbgGdb::DoCleanup() { #ifdef __WXMSW__ if(GetIsRemoteDebugging()) { SetConsoleCtrlHandler((PHANDLER_ROUTINE)SigHandler, FALSE); FreeConsole(); // Disconnect any existing console window. } #endif wxDELETE(m_gdbProcess); SetIsRecording(false); m_reverseDebugging = false; m_goingDown = false; m_attachedMode = false; SetIsRemoteDebugging(false); SetIsRemoteExtended(false); EmptyQueue(); m_gdbOutputArr.Clear(); m_bpList.clear(); m_debuggeeProjectName.Clear(); // Clear any bufferd output m_gdbOutputIncompleteLine.Clear(); // Free allocated console for this session m_consoleFinder.FreeConsole(); }
void FVisualLogger::Shutdown() { SetIsRecording(false); SetIsRecordingToFile(false); if (UseBinaryFileDevice) { RemoveDevice(&FVisualLoggerBinaryFileDevice::Get()); } }
void DbgGdb::EnableRecording(bool b) { if(b) { WriteCommand("target record-full", new DbgCmdRecordHandler(m_observer, this)); } else { WriteCommand("record stop", NULL); // If recording is OFF, disable the reverse-debugging switch SetIsRecording(false); m_reverseDebugging = false; } }
void FVisualLogger::SetIsRecordingToFile(bool InIsRecording) { if (!bIsRecording && InIsRecording) { SetIsRecording(true); } UWorld* World = GEngine ? GEngine->GetWorld() : nullptr; const FString BaseFileName = LogFileNameGetter.IsBound() ? LogFileNameGetter.Execute() : TEXT("VisualLog"); const FString MapName = World ? World->GetMapName() : TEXT(""); FString OutputFileName = FString::Printf(TEXT("%s_%s"), *BaseFileName, *MapName); if (bIsRecordingToFile && !InIsRecording) { for (auto* Device : OutputDevices) { if (Device->HasFlags(EVisualLoggerDeviceFlags::CanSaveToFile)) { Device->SetFileName(OutputFileName); Device->StopRecordingToFile(World ? World->TimeSeconds : StartRecordingToFileTime); } } } else if (!bIsRecordingToFile && InIsRecording) { StartRecordingToFileTime = World ? World->TimeSeconds : 0; for (auto* Device : OutputDevices) { if (Device->HasFlags(EVisualLoggerDeviceFlags::CanSaveToFile)) { Device->StartRecordingToFile(StartRecordingToFileTime); } } } bIsRecordingToFile = InIsRecording; }