DumpClassSchemas

DumpClassSchemas

#Overview

name: DumpClassSchemas

This variable is created as a Console Variable (cvar).

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of DumpClassSchemas is to provide a debugging and introspection tool for examining the schema of Unreal Engine classes. It allows developers to dump information about class structures and their properties to an output device.

This function is primarily used by the Unreal Engine editor subsystem and the CoreUObject module. Based on the callsites, it’s referenced in the UnrealEd and CoreUObject modules.

The value of this function is not set as a variable, but rather it’s a function that can be called. It’s invoked through the editor’s console command system, specifically when the “DumpClassSchemas” command is entered.

DumpClassSchemas interacts with the UStruct class hierarchy and likely uses the FOutputDevice for writing its output. It may also interact with the unversioned property serialization system, given its location in the UnversionedPropertySerialization.cpp file.

Developers should be aware that this function is primarily intended for debugging and development purposes. It may produce a large amount of output, depending on the number and complexity of classes in the project.

Best practices for using this function include:

  1. Use it sparingly, as it may impact performance when dumping a large number of classes.
  2. Be cautious about using it in shipping builds, as it exposes internal class information.
  3. Consider redirecting the output to a file for easier analysis, especially when dealing with complex class hierarchies.
  4. Use it in conjunction with other debugging tools to get a comprehensive understanding of the class structure in your project.

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/EditorServer.cpp:5545

Scope: file

Source code excerpt:

}

COREUOBJECT_API void DumpClassSchemas(const TCHAR* Str, FOutputDevice& Ar);

bool UEditorEngine::Exec_Editor( UWorld* InWorld, const TCHAR* Stream, FOutputDevice& Ar )
{
	TCHAR ErrorTemp[256]=TEXT("Setup: ");
	bool bProcessed=false;

#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/EditorServer.cpp:5826

Scope: file

Source code excerpt:

		HandleDumpPublicCommand( Str, Ar );
	}
	else if (FParse::Command(&Str, TEXT("DumpClassSchemas")))
	{
		DumpClassSchemas(Str, Ar);
	}
	else if( FParse::Command(&Str,TEXT("JUMPTO")) )
	{
		return HandleJumpToCommand( Str, Ar );
	}
	else if (FParse::Command(&Str, TEXT("BugIt")))

#Loc: <Workspace>/Engine/Source/Runtime/CoreUObject/Private/Serialization/UnversionedPropertySerialization.cpp:975

Scope (from outer to inner):

file
function     void DumpClassSchemas

Source code excerpt:

}

COREUOBJECT_API void DumpClassSchemas(const TCHAR* Str, FOutputDevice& Ar)
{
#if CACHE_UNVERSIONED_PROPERTY_SCHEMA
	TArray<FString> Lines;
	TArray<UStruct*> Structs;
	for (TObjectIterator<UStruct> It; It; ++It)
	{