The Script Debugger enables users
with the script_debugger role to debug server-side JavaScript, while the Session Log enables you to view and download required logs.
Users with the script_debugger role can perform these actions
using
Script Debugger:
- Have a dedicated debug transaction, which applies only to the current session.
- Set and remove breakpoints.
- Pause the current session at a breakpoint.
- Step through code line-by-line.
- Step into and out of function and method calls.
- View the value of local and global variables.
- View the value of private variables from function closures.
- View the call stack.
- View the transaction that the system is processing.
- Turn off the script debugger to resume running paused scripts.
Only users with the script_debugger role can access the Script Debugger.
Use the
Session Log tab to retrieve the session log
for business rules, script includes, and a custom UI such as
ServiceNow®
Agent Workspace that has a GraphQL component. Users with the script_debugger
role can:
- View session logs in a separate tab.
- Download a log.
- View logs for Agent Workspace.
- Specify debug options to view or download only the required logs.
By default, 100 transactions and 10000 messages are displayed on the
Session Log tab. If the transaction or message count exceeds the default value,
the session log is cleared and the next transactions or messages are displayed. You can
configure this transaction and message count using the
glide.debugger.log.transaction.count and
glide.debugger.log_messages_limit user preferences respectively. For
more information about the
glide.debugger.log.transaction.count and
glide.debugger.log_messages_limit user preferences, see
User preference settings.
Note: Enable
Session Log as a separate tab with
Script Debugger
using the
glide.debugger.log.ui system property.
- The Page option displays logs under forms and lists and on the
Session Log tab.
- The Session option displays logs only on the Session
Log tab.
For more information about the glide.debugger.log.ui system
property, see Available system
properties.
The
Script Debugger can pause any server-side script that runs in an
interactive transaction such as business rules, script includes, script actions, or UI actions
that require a response to proceed. If the GlideSystem method
isInteractive() returns
True when running the
script in context, then the
Script Debugger can pause it.
Note: Some script
objects, such as script includes, can be called from multiple contexts. For example:
- when a business rule runs a script include on a form submit that is an interactive
transaction waiting on the form data to change before continuing.
- when a scheduled job runs the same script include that is a non-interactive background
transaction that can also run other scripts simultaneously.
To debug client-side scripts, you can use browser-based developers tools.
A debugger transaction remains open as long as the user session is valid. If a user logs out
or their session times out, the system closes the debugger transaction.
To view debug logs, see Display debugging
logs.