FKismetDebugUtilities

Choose your operating system:

Windows

macOS

Linux

References

Module

UnrealEd

Header

/Engine/Source/Editor/UnrealEd/Public/Kismet2/KismetDebugUtilities.h

Include

#include "Kismet2/KismetDebugUtilities.h"

Syntax

class FKismetDebugUtilities

Constructors

No constructors are accessible with public or protected access.

Functions

Name Description

Public function Static

void

 

AddPinWatch

(
    const UBlueprint* Blueprint,
    FBlueprintWatchedPin&& WatchedPin
)

Adds a pin property watch

Protected function Static

void

 

AttemptToBreakExecution

(
    UBlueprint* BlueprintObj,
    const UObject* ActiveObject,
    const FFrame& StackFrame,
    const FBlueprintExceptionInfo& Inf...,
    UEdGraphNode* NodeStoppedAt,
    int32 DebugOpcodeOffset
)

Public function Static

bool

 

BlueprintHasBreakpoints

(
    const UBlueprint* Blueprint
)

Queries whether a blueprint has breakpoints in it

Public function Static

bool

 

BlueprintHasPinWatches

(
    const UBlueprint* Blueprint
)

Returns whether any pins are watched for a Blueprint

Public function Static

bool

 

CanInspectPinValue

(
    const UEdGraphPin* Pin
)

Determines if the given pin's value can be inspected

Public function Static

bool

 

CanWatchPin

(
    const UBlueprint* Blueprint,
    const UEdGraphPin* Pin,
    const TArray< FName >& InPathToPro...
)

Returns whether a pin property can be watched

Protected function Static

void

 

CheckBreakConditions

(
    UEdGraphNode* NodeStoppedAt,
    bool bHitBreakpoint,
    int32 BreakpointOffset,
    bool& InOutBreakExecution
)

Protected function Static

void

 

CleanupBreakpoints

(
    const UBlueprint* Blueprint
)

Protected function Static

void

 

CleanupWatches

(
    const UBlueprint* Blueprint
)

Public function Static

void

 

ClearBreakpoints

(
    const UBlueprint* Blueprint
)

Deletes all breakpoints in this blueprint

Public function Static

void

 

ClearBreakpointsForPath

(
    const FString& BlueprintPath
)

Deletes all breakpoints in this blueprint

Public function Static

void

 

ClearPinWatches

(
    const UBlueprint* Blueprint
)

Removes all Watched pins from a blueprint

Public function Static

void

 

CreateBreakpoint

(
    const UBlueprint* Blueprint,
    UEdGraphNode* Node,
    bool bIsEnabled
)

Adds a breakpoint to the provided node

Public function Static

bool

 

DoesPinHaveWatches

(
    const UBlueprint* Blueprint,
    const UEdGraphPin* Pin
)

Returns whether there are any watched properties for a given pin

Public function Static

void

 

EndOfScriptExecution

(
    const FBlueprintContextTracker& Bl...
)

Called on terminatation of the current script execution so we can reset any break conditions

Public function Static

FBlueprintBr...

 

FindBreakpointByPredicate

(
    const UBlueprint* Blueprint,
    const TFunctionRef< bool...
)

Returns the first breakpoint that matches the provided predicate or nullptr if nothing matched

Public function Static

FBlueprintBr...

 

FindBreakpointForNode

(
    const UEdGraphNode* OwnerNode,
    const UBlueprint* OwnerBluepri...,
    bool bCheckSubLocations
)

Returns the breakpoint associated with a node, or NULL

Public function Static

UClass *

 

FindClassForNode

(
    const UObject* Object,
    UFunction* Function
)

Return proper class for breakpoint.

Public function Static

FProperty &#...

 

FindClassPropertyForNode

(
    UBlueprint* Blueprint,
    const UEdGraphNode* Node
)

Looks thru the debugging data for any class variables associated with the node (e.g., temporary variables or timelines)

Public function Static

FProperty &#...

 

FindClassPropertyForPin

(
    UBlueprint* Blueprint,
    const UEdGraphPin* Pin
)

Looks thru the debugging data for any class variables associated with the pin.

Protected function Static

EWatchTextRe...

 

FindDebuggingData

(
    UBlueprint* Blueprint,
    UObject* ActiveObject,
    const UEdGraphPin* WatchPin,
    FProperty*& OutProperty,
    void*& OutData,
    void*& OutDelta,
    UObject*& OutParent,
    TArray< UObject* >& SeenObjec...,
    bool* bOutIsDirectPtr
)

Helper function for converting between blueprint and debuggable data output params are only valid if the return result is EWatchTextResult::EWTR_Valid.

Public function Static

UEdGraphPin ...

 

FindPinWatchByPredicate

(
    const UBlueprint* Blueprint,
    const TFunctionRef< bool...
)

Returns the first watched pin that matches the provided predicate or nullptr if nothing matched

Public function Static

UEdGraphNode...

 

FindSourceNodeForCodeLocation

(
    const UObject* Object,
    UFunction* Function,
    int32 DebugOpcodeOffset,
    bool bAllowImpreciseHit
)

Find the node that resulted in code at the specified location in the Object, or NULL if there was a problem (e.g., no debugging information was generated)

Public function Static

void

 

ForeachBreakpoint

(
    const UBlueprint* Blueprint,
    TFunctionRef< void...
)

Performs a task on every breakpoint in the provided blueprint

Public function Static

void

 

ForeachPinPropertyWatch

(
    const UBlueprint* Blueprint,
    TFunctionRef< void...
)

Performs a task on every watched pin in the provided blueprint

Public function Static

void

 

ForeachPinWatch

(
    const UBlueprint* Blueprint,
    TFunctionRef< void*...
)

Performs a task on every watched pin in the provided blueprint

Public function Static

FText

 

GetAndClearLastExceptionMessage()

This doesn't work properly if there is more than one blueprint editor open at once either (one will consume it, the others will be left in the cold)

Public function Static

void

 

GetBreakpointInstallationSites

(
    const FBlueprintBreakpoint& Breakp...,
    TArray< uint8* >& InstallSite...
)

Returns the installation site(s); don't cache these pointers!

Protected function Static

TArray< FBlu...

 

GetBreakpoints

(
    const UBlueprint* Blueprint
)

Retrieve the Array of breakpoints associated with a blueprint.

Public function Static

UEdGraphNode...

 

GetCurrentInstruction()

Returns the current instruction; if a PIE/SIE session is started but paused; otherwise NULL

Public function Static

EWatchTextRe...

 

GetDebugInfo

(
    TSharedPtr< FPropertyInstanceInfo >...,
    UBlueprint* Blueprint,
    UObject* ActiveObject,
    const UEdGraphPin* WatchPin
)

Gets the debug info for a specified site.

Protected function Static

void

 

GetDebugInfo_InContainer

(
    int32 Index,
    TSharedPtr< FPropertyInstanceInfo >...,
    FProperty* Property,
    const void* Data
)

Public function Static

void

 

GetDebugInfoInternal

(
    TSharedPtr< FPropertyInstanceInfo >...,
    FProperty* Property,
    const void* PropertyValue
)

Retrieves Debug info from a Property and a pointer to it's associated data.

Public function Static

UEdGraphNode...

 

GetMostRecentBreakpointHit()

Returns the most recent hit breakpoint; if a PIE/SIE session is started but paused; otherwise NULL

Protected function Static

FPerBlueprin...

 

GetPerBlueprintSettings

(
    const UBlueprint* Blueprint
)

Retrieve the user settings associated with a blueprint.

Public function Static

const TSimpl...

 

GetTraceStack()

Get the trace stack.

Public function Static

void

 

GetValidBreakpointLocations

(
    const UK2Node_MacroInstance* M...,
    TArray< const UEdGraphNode* > ...
)

Returns the set of valid macro source node breakpoint location(s) for the given macro instance node.

Protected function Static

TArray< FBlu...

 

GetWatchedPins

(
    const UBlueprint* Blueprint
)

Retrieve the Array of watched pins associated with a blueprint.

Public function Static

EWatchTextRe...

 

GetWatchText

(
    FString& OutWatchText,
    UBlueprint* Blueprint,
    UObject* ActiveObject,
    const UEdGraphPin* WatchPin
)

Gets the watched tooltip for a specified site.

Public function Static

bool

 

HasDebuggingData

(
    const UBlueprint* Blueprint
)

Is there debugging data available for this blueprint?

Public function Static

bool

 

IsBreakpointValid

(
    const FBlueprintBreakpoint& Breakp...
)

Is the node a valid breakpoint target? (i.e., the node is impure and ended up generating code)

Public function Static

bool

 

IsPinBeingWatched

(
    const UBlueprint* Blueprint,
    const UEdGraphPin* Pin,
    const TArray< FName >& InPathToPro...
)

Returns whether a pin property is being watched

Public function Static

bool

 

IsSingleStepping()

Whether or not we are single stepping.

Public function Static

void

 

NotifyDebuggerOfEndOfGameFrame

(
    UWorld* CurrentWorld
)

Notify the debugger of the end of the game frame.

Public function Static

void

 

NotifyDebuggerOfStartOfGameFrame

(
    UWorld* CurrentWorld
)

Notify the debugger of the start of the game frame.

Public function Static

void

 

OnScriptException

(
    const UObject* ActiveObject,
    const FFrame& StackFrame,
    const FBlueprintExceptionInfo& Inf...
)

Public function Static

void

 

PostDuplicateBlueprint

(
    UBlueprint* SrcBlueprint,
    UBlueprint* DupBlueprint,
    const TArray< UEdGraphNode* > ...
)

Duplicates debug data from original blueprint to new duplicated blueprint

Public function Static

void

 

ReapplyBreakpoint

(
    FBlueprintBreakpoint& Breakpoint
)

Reapplies the breakpoint (used after recompiling to ensure it is set if needed)

Public function Static

void

 

RemoveBreakpointFromNode

(
    const UEdGraphNode* OwnerNode,
    const UBlueprint* OwnerBluepri...
)

Start the process of deleting this breakpoint

Public function Static

void

 

RemoveBreakpointsByPredicate

(
    const UBlueprint* Blueprint,
    const TFunctionRef< bool...
)

Removes any breakpoint that matches the provided predicate

Protected function Static

void

 

RemoveEmptySettings

(
    const FString& BlueprintPath
)

Public function Static

bool

 

RemovePinPropertyWatchesByPredicate

(
    const UBlueprint* Blueprint,
    const TFunctionRef< bool...
)

Removes any watched pin that matches the provided predicate

Public function Static

bool

 

RemovePinWatch

(
    const UBlueprint* Blueprint,
    const UEdGraphPin* Pin,
    const TArray< FName >& InPathToPro...
)

Removes a pin property Watch

Public function Static

bool

 

RemovePinWatchesByPredicate

(
    const UBlueprint* Blueprint,
    const TFunctionRef< bool...
)

Removes any watched pin that matches the provided predicate

Public function Static

void

 

RequestSingleStepIn()

Request an attempt to single-step to the next node

Public function Static

void

 

RequestStepOut()

Request an attempt to step out of the current graph

Public function Static

void

 

RequestStepOver()

Request an attempt to step over to the next node in this graph or the calling graph

Public function Static

void

 

RestoreBreakpointsOnLoad

(
    const UBlueprint* Blueprint
)

Handles breakpoint validation/restoration after loading the given Blueprint

Protected function Static

void

 

SaveBlueprintEditorSettings()

Save any modifications made to breakpoints

Public function Static

void

 

SetBreakpointEnabled

(
    FBlueprintBreakpoint& Breakpoint,
    bool bIsEnabled
)

Set or clear the enabled flag for the breakpoint

Public function Static

void

 

SetBreakpointEnabled

(
    const UEdGraphNode* OwnerNode,
    const UBlueprint* OwnerBluepri...,
    bool bIsEnabled
)

Set or clear the enabled flag for the breakpoint

Public function Static

void

 

SetBreakpointEnabledForSingleStep

(
    FBlueprintBreakpoint& Breakpoint,
    bool bDeleteAfterStep
)

Sets this breakpoint up as a single-step breakpoint (will disable or delete itself after one go if the breakpoint wasn't already enabled)

Public function Static

void

 

SetBreakpointInternal

(
    FBlueprintBreakpoint& Breakpoint,
    bool bShouldBeEnabled
)

Install/uninstall the breakpoint into/from the script code for the generated class that contains the node

Public function Static

void

 

SetBreakpointLocation

(
    FBlueprintBreakpoint& Breakpoint,
    UEdGraphNode* NewNode
)

Set the node that the breakpoint should focus on

Public function Static

void

 

TogglePinWatch

(
    const UBlueprint* Blueprint,
    const UEdGraphPin* Pin
)

Toggles whether a pin is being watched

Public function Static

void

 

UpdateBreakpointStateWhenHit

(
    const UEdGraphNode* OwnerNode,
    const UBlueprint* OwnerBluepri...
)

Update the internal state of the breakpoint when it got hit

Enums

Name

Description

Public enum

EWatchTextResult

Typedefs

Name

Description

FOnWatchedPinsListChanged

Delegate for when pins are added or removed from the watchlist.

Constants

Name

Description

MAX_TRACE_STACK_SAMPLES

The maximum number of trace samples to gather before overwriting old ones.

WatchedPinsListChangedEvent

Notifies listeners when a watched pin is added or removed.