Rediger

NonDebuggable attribute

Version: Available or changed with runtime version 2.0.

Specifies that the annotated symbol will not be available to the debugger. E.g. methods can't be stepped through and variables can't be inspected.

Applies to

  • Variable
  • Method

Syntax

[NonDebuggable]

Example

Add [NonDebuggable] to each method that you want to hide from the debugger.

codeunit 50142 NoDebuggingOfMethod
{
    [NonDebuggable]
    local procedure MyProcedure()
    var
        myInt: Integer;
    begin
        //Make something happen
    end;
}

Add [NonDebuggable] to each variable that you want to hide from the debugger.

codeunit 50143 NoDebuggingOfVar
{
    local procedure MyProcedure()
    var
        [NonDebuggable]
        myInt: Integer;
    begin
        //Make something happen
    end;
}

Remarks

Regardless of the resource exposure policy setting, methods and variables marked with [NonDebuggable] remain unavailable to the debugger.

Note

Snapshot debugging collects frames for non-debuggable methods but doesn't show their variables at snap points.

Learn more in Resource Exposure Policy Setting.

AL method reference
Debugging