{ "domain": "Debugger", "description": "Debugger domain exposes JavaScript debugging capabilities. It allows setting and removing breakpoints, stepping through execution, exploring stack traces, etc.", "types": [ { "id": "BreakpointId", "type": "string", "description": "Breakpoint identifier." }, { "id": "BreakpointActionIdentifier", "type": "integer", "description": "Breakpoint action identifier." }, { "id": "ScriptId", "type": "string", "description": "Unique script identifier." }, { "id": "CallFrameId", "type": "string", "description": "Call frame identifier." }, { "id": "Location", "type": "object", "properties": [ { "name": "scriptId", "$ref": "ScriptId", "description": "Script identifier as reported in the Debugger.scriptParsed." }, { "name": "lineNumber", "type": "integer", "description": "Line number in the script." }, { "name": "columnNumber", "type": "integer", "optional": true, "description": "Column number in the script." } ], "description": "Location in the source code." }, { "id": "BreakpointAction", "type": "object", "properties": [ { "name": "type", "type": "string", "enum": ["log", "evaluate", "sound", "probe"], "description": "Different kinds of breakpoint actions." }, { "name": "data", "type": "string", "optional": true, "description": "Data associated with this breakpoint type (e.g. for type \"eval\" this is the JavaScript string to evalulate)." }, { "name": "id", "$ref": "BreakpointActionIdentifier", "optional": true, "description": "A frontend-assigned identifier for this breakpoint action." } ], "description": "Action to perform when a breakpoint is triggered." }, { "id": "BreakpointOptions", "type": "object", "properties": [ { "name": "condition", "type": "string", "optional": true, "description": "Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true." }, { "name": "actions", "type": "array", "optional": true, "items": { "$ref": "BreakpointAction" }, "description": "Actions to perform automatically when the breakpoint is triggered." }, { "name": "autoContinue", "type": "boolean", "optional": true, "description": "Automatically continue after hitting this breakpoint and running actions." } ], "description": "Extra options that modify breakpoint behavior." }, { "id": "FunctionDetails", "type": "object", "properties": [ { "name": "location", "$ref": "Location", "description": "Location of the function." }, { "name": "name", "type": "string", "optional": true, "description": "Name of the function. Not present for anonymous functions." }, { "name": "displayName", "type": "string", "optional": true, "description": "Display name of the function(specified in 'displayName' property on the function object)." }, { "name": "inferredName", "type": "string", "optional": true, "description": "Name of the function inferred from its initial assignment." }, { "name": "scopeChain", "type": "array", "optional": true, "items": { "$ref": "Scope" }, "description": "Scope chain for this closure." } ], "description": "Information about the function." }, { "id": "CallFrame", "type": "object", "properties": [ { "name": "callFrameId", "$ref": "CallFrameId", "description": "Call frame identifier. This identifier is only valid while the virtual machine is paused." }, { "name": "functionName", "type": "string", "description": "Name of the JavaScript function called on this call frame." }, { "name": "location", "$ref": "Location", "description": "Location in the source code." }, { "name": "scopeChain", "type": "array", "items": { "$ref": "Scope" }, "description": "Scope chain for this call frame." }, { "name": "this", "$ref": "Runtime.RemoteObject", "description": "this object for this call frame." } ], "description": "JavaScript call frame. Array of call frames form the call stack." }, { "id": "Scope", "type": "object", "properties": [ { "name": "type", "type": "string", "enum": ["global", "local", "with", "closure", "catch", "functionName"], "description": "Scope type." }, { "name": "object", "$ref": "Runtime.RemoteObject", "description": "Object representing the scope. For global and with scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties." } ], "description": "Scope description." }, { "id": "ProbeSample", "description": "A sample collected by evaluating a probe breakpoint action.", "type": "object", "properties": [ { "name": "probeId", "$ref": "BreakpointActionIdentifier", "description": "Identifier of the probe breakpoint action that created the sample." }, { "name": "sampleId", "type": "integer", "description": "Unique identifier for this sample." }, { "name": "batchId", "type": "integer", "description": "A batch identifier which is the same for all samples taken at the same breakpoint hit." }, { "name": "timestamp", "type": "number", "description": "Timestamp of when the sample was taken." }, { "name": "payload", "$ref": "Runtime.RemoteObject", "description": "Contents of the sample." } ] }, { "id": "AssertPauseReason", "description": "The pause reason auxiliary data when paused because of an assertion.", "type": "object", "properties": [ { "name": "message", "type": "string", "optional": true, "description": "The console.assert message string if provided." } ] }, { "id": "BreakpointPauseReason", "description": "The pause reason auxiliary data when paused because of hitting a breakpoint.", "type": "object", "properties": [ { "name": "breakpointId", "type": "string", "description": "The identifier of the breakpoint causing the pause." } ] }, { "id": "CSPViolationPauseReason", "description": "The pause reason auxiliary data when paused because of a Content Security Policy directive.", "type": "object", "properties": [ { "name": "directive", "type": "string", "description": "The CSP directive that blocked script execution." } ] } ], "commands": [ { "name": "enable", "description": "Enables debugger for the given page. Clients should not assume that the debugging has been enabled until the result for this command is received." }, { "name": "disable", "description": "Disables debugger for given page." }, { "name": "setBreakpointsActive", "parameters": [ { "name": "active", "type": "boolean", "description": "New value for breakpoints active state." } ], "description": "Activates / deactivates all breakpoints on the page." }, { "name": "setBreakpointByUrl", "parameters": [ { "name": "lineNumber", "type": "integer", "description": "Line number to set breakpoint at." }, { "name": "url", "type": "string", "optional": true, "description": "URL of the resources to set breakpoint on." }, { "name": "urlRegex", "type": "string", "optional": true, "description": "Regex pattern for the URLs of the resources to set breakpoints on. Either url or urlRegex must be specified." }, { "name": "columnNumber", "type": "integer", "optional": true, "description": "Offset in the line to set breakpoint at." }, { "name": "options", "$ref": "BreakpointOptions", "optional": true, "description": "Options to apply to this breakpoint to modify its behavior." } ], "returns": [ { "name": "breakpointId", "$ref": "BreakpointId", "description": "Id of the created breakpoint for further reference." }, { "name": "locations", "type": "array", "items": { "$ref": "Location"}, "description": "List of the locations this breakpoint resolved into upon addition." } ], "description": "Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this command is issued, all existing parsed scripts will have breakpoints resolved and returned in locations property. Further matching script parsing will result in subsequent breakpointResolved events issued. This logical breakpoint will survive page reloads." }, { "name": "setBreakpoint", "parameters": [ { "name": "location", "$ref": "Location", "description": "Location to set breakpoint in." }, { "name": "options", "$ref": "BreakpointOptions", "optional": true, "description": "Options to apply to this breakpoint to modify its behavior." } ], "returns": [ { "name": "breakpointId", "$ref": "BreakpointId", "description": "Id of the created breakpoint for further reference." }, { "name": "actualLocation", "$ref": "Location", "description": "Location this breakpoint resolved into." } ], "description": "Sets JavaScript breakpoint at a given location." }, { "name": "removeBreakpoint", "parameters": [ { "name": "breakpointId", "$ref": "BreakpointId" } ], "description": "Removes JavaScript breakpoint." }, { "name": "continueToLocation", "parameters": [ { "name": "location", "$ref": "Location", "description": "Location to continue to." } ], "description": "Continues execution until specific location is reached." }, { "name": "stepOver", "description": "Steps over the statement." }, { "name": "stepInto", "description": "Steps into the function call." }, { "name": "stepOut", "description": "Steps out of the function call." }, { "name": "pause", "description": "Stops on the next JavaScript statement." }, { "name": "resume", "description": "Resumes JavaScript execution." }, { "name": "searchInContent", "description": "Searches for given string in script content.", "parameters": [ { "name": "scriptId", "$ref": "ScriptId", "description": "Id of the script to search in." }, { "name": "query", "type": "string", "description": "String to search for." }, { "name": "caseSensitive", "type": "boolean", "optional": true, "description": "If true, search is case sensitive." }, { "name": "isRegex", "type": "boolean", "optional": true, "description": "If true, treats string parameter as regex." } ], "returns": [ { "name": "result", "type": "array", "items": { "$ref": "GenericTypes.SearchMatch" }, "description": "List of search matches." } ] }, { "name": "getScriptSource", "parameters": [ { "name": "scriptId", "$ref": "ScriptId", "description": "Id of the script to get source for." } ], "returns": [ { "name": "scriptSource", "type": "string", "description": "Script source." } ], "description": "Returns source for the script with given id." }, { "name": "getFunctionDetails", "parameters": [ { "name": "functionId", "$ref": "Runtime.RemoteObjectId", "description": "Id of the function to get location for." } ], "returns": [ { "name": "details", "$ref": "FunctionDetails", "description": "Information about the function." } ], "description": "Returns detailed information on given function." }, { "name": "setPauseOnExceptions", "parameters": [ { "name": "state", "type": "string", "enum": ["none", "uncaught", "all"], "description": "Pause on exceptions mode." } ], "description": "Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or no exceptions. Initial pause on exceptions state is none." }, { "name": "evaluateOnCallFrame", "parameters": [ { "name": "callFrameId", "$ref": "CallFrameId", "description": "Call frame identifier to evaluate on." }, { "name": "expression", "type": "string", "description": "Expression to evaluate." }, { "name": "objectGroup", "type": "string", "optional": true, "description": "String object group name to put result into (allows rapid releasing resulting object handles using releaseObjectGroup)." }, { "name": "includeCommandLineAPI", "type": "boolean", "optional": true, "description": "Specifies whether command line API should be available to the evaluated expression, defaults to false." }, { "name": "doNotPauseOnExceptionsAndMuteConsole", "type": "boolean", "optional": true, "description": "Specifies whether evaluation should stop on exceptions and mute console. Overrides setPauseOnException state." }, { "name": "returnByValue", "type": "boolean", "optional": true, "description": "Whether the result is expected to be a JSON object that should be sent by value." }, { "name": "generatePreview", "type": "boolean", "optional": true, "description": "Whether preview should be generated for the result." }, { "name": "saveResult", "type": "boolean", "optional": true, "description": "Whether the resulting value should be considered for saving in the $n history." } ], "returns": [ { "name": "result", "$ref": "Runtime.RemoteObject", "description": "Object wrapper for the evaluation result." }, { "name": "wasThrown", "type": "boolean", "optional": true, "description": "True if the result was thrown during the evaluation." }, { "name": "savedResultIndex", "type": "integer", "optional": true, "description": "If the result was saved, this is the $n index that can be used to access the value." } ], "description": "Evaluates expression on a given call frame." }, { "name": "setOverlayMessage", "parameters": [ { "name": "message", "type": "string", "optional": true, "description": "Overlay message to display when paused in debugger." } ], "description": "Sets overlay message." } ], "events": [ { "name": "globalObjectCleared", "description": "Called when global has been cleared and debugger client should reset its state. Happens upon navigation or reload." }, { "name": "scriptParsed", "parameters": [ { "name": "scriptId", "$ref": "ScriptId", "description": "Identifier of the script parsed." }, { "name": "url", "type": "string", "description": "URL or name of the script parsed (if any)." }, { "name": "startLine", "type": "integer", "description": "Line offset of the script within the resource with given URL (for script tags)." }, { "name": "startColumn", "type": "integer", "description": "Column offset of the script within the resource with given URL." }, { "name": "endLine", "type": "integer", "description": "Last line of the script." }, { "name": "endColumn", "type": "integer", "description": "Length of the last line of the script." }, { "name": "isContentScript", "type": "boolean", "optional": true, "description": "Determines whether this script is a user extension script." }, { "name": "sourceMapURL", "type": "string", "optional": true, "description": "URL of source map associated with script (if any)." }, { "name": "hasSourceURL", "type": "boolean", "optional": true, "description": "True, if this script has sourceURL." } ], "description": "Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger." }, { "name": "scriptFailedToParse", "parameters": [ { "name": "url", "type": "string", "description": "URL of the script that failed to parse." }, { "name": "scriptSource", "type": "string", "description": "Source text of the script that failed to parse." }, { "name": "startLine", "type": "integer", "description": "Line offset of the script within the resource." }, { "name": "errorLine", "type": "integer", "description": "Line with error." }, { "name": "errorMessage", "type": "string", "description": "Parse error message." } ], "description": "Fired when virtual machine fails to parse the script." }, { "name": "breakpointResolved", "parameters": [ { "name": "breakpointId", "$ref": "BreakpointId", "description": "Breakpoint unique identifier." }, { "name": "location", "$ref": "Location", "description": "Actual breakpoint location." } ], "description": "Fired when breakpoint is resolved to an actual script and location." }, { "name": "paused", "parameters": [ { "name": "callFrames", "type": "array", "items": { "$ref": "CallFrame" }, "description": "Call stack the virtual machine stopped on." }, { "name": "reason", "type": "string", "enum": ["XHR", "DOM", "EventListener", "exception", "assert", "CSPViolation", "DebuggerStatement", "Breakpoint", "PauseOnNextStatement", "other"], "description": "Pause reason." }, { "name": "data", "type": "object", "optional": true, "description": "Object containing break-specific auxiliary properties." } ], "description": "Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria." }, { "name": "resumed", "description": "Fired when the virtual machine resumed execution." }, { "name": "didSampleProbe", "description": "Fires when a new probe sample is collected.", "parameters": [ { "name": "sample", "$ref": "ProbeSample", "description": "A collected probe sample." } ] }, { "name": "playBreakpointActionSound", "description": "Fired when a \"sound\" breakpoint action is triggered on a breakpoint.", "parameters": [ { "name": "breakpointActionId", "$ref": "BreakpointActionIdentifier", "description": "Breakpoint action identifier." } ] } ] }