blob: 1a8b69cab5728c1c7d75444f45665cb4fca9d8fc [file] [log] [blame]
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Eclipse OpenJ9 documentation">
<link rel="canonical" href="https://www.eclipse.org/openj9/docs/xtrace/">
<link rel="icon" href="../cr/openj9-logo.svg">
<meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.1.4">
<title>-Xtrace - </title>
<link rel="stylesheet" href="../assets/stylesheets/main.bde7dde4.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.ef6f36e2.min.css">
<meta name="theme-color" content="#009485">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
<style>:root{--md-text-font-family:"Roboto";--md-code-font-family:"Roboto Mono"}</style>
<link rel="stylesheet" href="../stylesheets/oj9.css">
</head>
<body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="cyan">
<script>function __prefix(e){return new URL("..",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#-xtrace" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title=" " class="md-header__button md-logo" aria-label=" " data-md-component="logo">
<img src="../cr/openj9_6b.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
-Xtrace
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</label>
<button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
</button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/eclipse-openj9/openj9" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</div>
<div class="md-source__repository">
eclipse-openj9/openj9
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title=" " class="md-nav__button md-logo" aria-label=" " data-md-component="logo">
<img src="../cr/openj9_6b.png" alt="logo">
</a>
</label>
<div class="md-nav__source">
<a href="https://github.com/eclipse-openj9/openj9" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</div>
<div class="md-source__repository">
eclipse-openj9/openj9
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
About the docs
</a>
</li>
<li class="md-nav__item">
<a href="../builds/" class="md-nav__link">
OpenJ9 builds
</a>
</li>
<li class="md-nav__item">
<a href="../introduction/" class="md-nav__link">
Getting started
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_newuser/" class="md-nav__link">
New to OpenJ9?
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5">
Release notes
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Release notes" data-md-level="1">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Release notes
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../openj9_releases/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../version0.35/" class="md-nav__link">
Version 0.35.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.33/" class="md-nav__link">
Version 0.33.x
</a>
</li>
<li class="md-nav__item">
<a href="../version0.32/" class="md-nav__link">
Version 0.32.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.30.1/" class="md-nav__link">
Version 0.30.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.30/" class="md-nav__link">
Version 0.30.0
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_7" type="checkbox" id="__nav_5_7" >
<label class="md-nav__link" for="__nav_5_7">
Earlier releases
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Earlier releases" data-md-level="2">
<label class="md-nav__title" for="__nav_5_7">
<span class="md-nav__icon md-icon"></span>
Earlier releases
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../version0.29.1/" class="md-nav__link">
Version 0.29.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.29/" class="md-nav__link">
Version 0.29.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.27/" class="md-nav__link">
Version 0.27.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.26/" class="md-nav__link">
Version 0.26.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.25/" class="md-nav__link">
Version 0.25.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.24/" class="md-nav__link">
Version 0.24.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.23/" class="md-nav__link">
Version 0.23.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.22/" class="md-nav__link">
Version 0.22.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.21/" class="md-nav__link">
Version 0.21.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.20/" class="md-nav__link">
Version 0.20.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.19/" class="md-nav__link">
Version 0.19.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.18/" class="md-nav__link">
Version 0.18.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.17/" class="md-nav__link">
Version 0.17.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.16/" class="md-nav__link">
Version 0.16.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.15/" class="md-nav__link">
Version 0.15.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.14/" class="md-nav__link">
Version 0.14.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.13/" class="md-nav__link">
Version 0.13.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.12/" class="md-nav__link">
Version 0.12.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.11/" class="md-nav__link">
Version 0.11.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.10/" class="md-nav__link">
Version 0.10.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.9/" class="md-nav__link">
Version 0.9.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.8/" class="md-nav__link">
Version 0.8.0
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6">
Migrating
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Migrating" data-md-level="1">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Migrating
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../migrating8to11/" class="md-nav__link">
Migrating from Java 8 to Java 11
</a>
</li>
<li class="md-nav__item">
<a href="../migrating11to17/" class="md-nav__link">
Migrating from Java 11 to Java 17
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../configuring/" class="md-nav__link">
Configuring your system
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
<label class="md-nav__link" for="__nav_8">
Memory management
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Memory management" data-md-level="1">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Memory management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../allocation/" class="md-nav__link">
Heap allocation
</a>
</li>
<li class="md-nav__item">
<a href="../gc_overview/" class="md-nav__link">
Garbage Collection (GC)
</a>
</li>
<li class="md-nav__item">
<a href="../gc/" class="md-nav__link">
GC policies
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8_4" type="checkbox" id="__nav_8_4" >
<label class="md-nav__link" for="__nav_8_4">
Troubleshooting GC
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Troubleshooting GC" data-md-level="2">
<label class="md-nav__title" for="__nav_8_4">
<span class="md-nav__icon md-icon"></span>
Troubleshooting GC
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../vgclog/" class="md-nav__link">
Verbose GC logs
</a>
</li>
<li class="md-nav__item">
<a href="../vgclog_examples/" class="md-nav__link">
Log examples
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../jit/" class="md-nav__link">
JIT Compiler
</a>
</li>
<li class="md-nav__item">
<a href="../jitserver/" class="md-nav__link">
JITServer technology
</a>
</li>
<li class="md-nav__item">
<a href="../jitserver_tuning/" class="md-nav__link">
JITServer tuning
</a>
</li>
<li class="md-nav__item">
<a href="../aot/" class="md-nav__link">
AOT Compiler
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_13" type="checkbox" id="__nav_13" >
<label class="md-nav__link" for="__nav_13">
Class data sharing
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Class data sharing" data-md-level="1">
<label class="md-nav__title" for="__nav_13">
<span class="md-nav__icon md-icon"></span>
Class data sharing
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../shrc/" class="md-nav__link">
Introduction
</a>
</li>
<li class="md-nav__item">
<a href="../shrc_diag_util/" class="md-nav__link">
Diagnosing problems
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../attachapi/" class="md-nav__link">
Java Attach API
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_15" type="checkbox" id="__nav_15" >
<label class="md-nav__link" for="__nav_15">
Diagnostics
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Diagnostics" data-md-level="1">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
Diagnostics
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../diag_overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_15_2" type="checkbox" id="__nav_15_2" >
<label class="md-nav__link" for="__nav_15_2">
Dumps
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Dumps" data-md-level="2">
<label class="md-nav__title" for="__nav_15_2">
<span class="md-nav__icon md-icon"></span>
Dumps
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../dump_javadump/" class="md-nav__link">
Java dump
</a>
</li>
<li class="md-nav__item">
<a href="../dump_heapdump/" class="md-nav__link">
Heap dump
</a>
</li>
<li class="md-nav__item">
<a href="../dump_systemdump/" class="md-nav__link">
System dump
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_15_3" type="checkbox" id="__nav_15_3" >
<label class="md-nav__link" for="__nav_15_3">
Tools
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Tools" data-md-level="2">
<label class="md-nav__title" for="__nav_15_3">
<span class="md-nav__icon md-icon"></span>
Tools
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../tool_jextract/" class="md-nav__link">
Dump extractor
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jdmpview/" class="md-nav__link">
Dump viewer
</a>
</li>
<li class="md-nav__item">
<a href="../tool_traceformat/" class="md-nav__link">
Trace formatter
</a>
</li>
<li class="md-nav__item">
<a href="../tool_builder/" class="md-nav__link">
Option builder
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jcmd/" class="md-nav__link">
Java command (jcmd) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jmap/" class="md-nav__link">
Java memory map (jmap) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jps/" class="md-nav__link">
Java process status (jps)
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jstack/" class="md-nav__link">
Java stack (jstack) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jstat/" class="md-nav__link">
Java statistics monitoring (jstat) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_migration/" class="md-nav__link">
Switching to OpenJ9
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_15_4" type="checkbox" id="__nav_15_4" >
<label class="md-nav__link" for="__nav_15_4">
Interfaces
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Interfaces" data-md-level="2">
<label class="md-nav__title" for="__nav_15_4">
<span class="md-nav__icon md-icon"></span>
Interfaces
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../interface_jvmti/" class="md-nav__link">
JVMTI
</a>
</li>
<li class="md-nav__item">
<a href="../interface_dtfj/" class="md-nav__link">
DTFJ
</a>
</li>
<li class="md-nav__item">
<a href="../interface_lang_management/" class="md-nav__link">
Language Management
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_16" type="checkbox" id="__nav_16" checked>
<label class="md-nav__link" for="__nav_16">
Command-line options
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Command-line options" data-md-level="1">
<label class="md-nav__title" for="__nav_16">
<span class="md-nav__icon md-icon"></span>
Command-line options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../cmdline_specifying/" class="md-nav__link">
Specifying options
</a>
</li>
<li class="md-nav__item">
<a href="../cmdline_general/" class="md-nav__link">
Standard options
</a>
</li>
<li class="md-nav__item">
<a href="../cmdline_migration/" class="md-nav__link">
Switching to OpenJ9
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_16_4" type="checkbox" id="__nav_16_4" >
<label class="md-nav__link" for="__nav_16_4">
System property options
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="System property options" data-md-level="2">
<label class="md-nav__title" for="__nav_16_4">
<span class="md-nav__icon md-icon"></span>
System property options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../d_jvm_commands/" class="md-nav__link">
Using System properties
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenableclasscaching/" class="md-nav__link">
-Dcom.ibm.enableClassCaching
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenablelegacydumpsecurity/" class="md-nav__link">
-Dcom.ibm.enableLegacyDumpSecurity
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenablelegacylogsecurity/" class="md-nav__link">
-Dcom.ibm.enableLegacyLogSecurity
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenablelegacytracesecurity/" class="md-nav__link">
-Dcom.ibm.enableLegacyTraceSecurity
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmgpudisable/" class="md-nav__link">
-Dcom.ibm.gpu.disable
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmgpuenable/" class="md-nav__link">
-Dcom.ibm.gpu.enable
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmgpuverbose/" class="md-nav__link">
-Dcom.ibm.gpu.verbose
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmlangmanagementosmxbeaniscputime100ns/" class="md-nav__link">
-Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmlangmanagementverbose/" class="md-nav__link">
-Dcom.ibm.lang.management.verbose
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmotisharedsharedclassglobalfilterclass/" class="md-nav__link">
-Dcom.ibm.oti.shared.SharedClassGlobalFilterClass
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachcommand_timeout/" class="md-nav__link">
-Dcom.ibm.tools.attach.command_timeout
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachdirectory/" class="md-nav__link">
-Dcom.ibm.tools.attach.directory
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachdisplayname/" class="md-nav__link">
-Dcom.ibm.tools.attach.displayName
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachenable/" class="md-nav__link">
-Dcom.ibm.tools.attach.enable
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachid/" class="md-nav__link">
-Dcom.ibm.tools.attach.id
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachlogging/" class="md-nav__link">
-Dcom.ibm.tools.attach.logging
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachlogname/" class="md-nav__link">
-Dcom.ibm.tools.attach.log.name
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachshutdown_timeout/" class="md-nav__link">
-Dcom.ibm.tools.attach.shutdown_timeout
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachtimeout/" class="md-nav__link">
-Dcom.ibm.tools.attach.timeout
</a>
</li>
<li class="md-nav__item">
<a href="../dfileencoding/" class="md-nav__link">
-Dfile.encoding
</a>
</li>
<li class="md-nav__item">
<a href="../djavacompiler/" class="md-nav__link">
-Djava.compiler
</a>
</li>
<li class="md-nav__item">
<a href="../djavalangstringsubstringnocopy/" class="md-nav__link">
-Djava.lang.string.substring.nocopy
</a>
</li>
<li class="md-nav__item">
<a href="../djavalangstringbuffergrowaggressively/" class="md-nav__link">
-Djava.lang.stringBuffer.growAggressively
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativecbc/" class="md-nav__link">
-Djdk.nativeCBC
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativechacha20/" class="md-nav__link">
-Djdk.nativeChaCha20
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativecrypto/" class="md-nav__link">
-Djdk.nativeCrypto
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativedigest/" class="md-nav__link">
-Djdk.nativeDigest
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativegcm/" class="md-nav__link">
-Djdk.nativeGCM
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativersa/" class="md-nav__link">
-Djdk.nativeRSA
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_16_5" type="checkbox" id="__nav_16_5" checked>
<label class="md-nav__link" for="__nav_16_5">
JVM -X options
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="JVM -X options" data-md-level="2">
<label class="md-nav__title" for="__nav_16_5">
<span class="md-nav__icon md-icon"></span>
JVM -X options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../x_jvm_commands/" class="md-nav__link">
Using -X options
</a>
</li>
<li class="md-nav__item">
<a href="../x/" class="md-nav__link">
-X
</a>
</li>
<li class="md-nav__item">
<a href="../xaggressive/" class="md-nav__link">
-Xaggressive
</a>
</li>
<li class="md-nav__item">
<a href="../xalwaysclassgc/" class="md-nav__link">
-Xalwaysclassgc
</a>
</li>
<li class="md-nav__item">
<a href="../xaot/" class="md-nav__link">
-Xaot
</a>
</li>
<li class="md-nav__item">
<a href="../xargencoding/" class="md-nav__link">
-Xargencoding
</a>
</li>
<li class="md-nav__item">
<a href="../xbootclasspath/" class="md-nav__link">
-Xbootclasspath
</a>
</li>
<li class="md-nav__item">
<a href="../xceehdlr/" class="md-nav__link">
-XCEEHDLR
</a>
</li>
<li class="md-nav__item">
<a href="../xcheck/" class="md-nav__link">
-Xcheck
</a>
</li>
<li class="md-nav__item">
<a href="../xclassgc/" class="md-nav__link">
-Xclassgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcodecache/" class="md-nav__link">
-Xcodecache
</a>
</li>
<li class="md-nav__item">
<a href="../xcodecachetotal/" class="md-nav__link">
-Xcodecachetotal
</a>
</li>
<li class="md-nav__item">
<a href="../xcomp/" class="md-nav__link">
-Xcomp
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactexplicitgc/" class="md-nav__link">
-Xcompactexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactgc/" class="md-nav__link">
-Xcompactgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompilationthreads/" class="md-nav__link">
-XcompilationThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xcompressedrefs/" class="md-nav__link">
-Xcompressedrefs
</a>
</li>
<li class="md-nav__item">
<a href="../xconcurrentbackground/" class="md-nav__link">
-Xconcurrentbackground
</a>
</li>
<li class="md-nav__item">
<a href="../xconcurrentlevel/" class="md-nav__link">
-Xconcurrentlevel
</a>
</li>
<li class="md-nav__item">
<a href="../xconcurrentslack/" class="md-nav__link">
-Xconcurrentslack
</a>
</li>
<li class="md-nav__item">
<a href="../xconmeter/" class="md-nav__link">
-Xconmeter
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexcessivegc/" class="md-nav__link">
-Xdisableexcessivegc
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexplicitgc/" class="md-nav__link">
-Xdisableexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xdisablejavadump/" class="md-nav__link">
-Xdisablejavadump
</a>
</li>
<li class="md-nav__item">
<a href="../xenablestringconstantgc/" class="md-nav__link">
-Xdisablestringconstantgc
</a>
</li>
<li class="md-nav__item">
<a href="../xdump/" class="md-nav__link">
-Xdump
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexcessivegc/" class="md-nav__link">
-Xenableexcessivegc
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexplicitgc/" class="md-nav__link">
-Xenableexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xenablestringconstantgc/" class="md-nav__link">
-Xenablestringconstantgc
</a>
</li>
<li class="md-nav__item">
<a href="../xfastresolve/" class="md-nav__link">
-Xfastresolve
</a>
</li>
<li class="md-nav__item">
<a href="../xfuture/" class="md-nav__link">
-Xfuture
</a>
</li>
<li class="md-nav__item">
<a href="../xgc/" class="md-nav__link">
-Xgc
</a>
</li>
<li class="md-nav__item">
<a href="../xgcsplitheap/" class="md-nav__link">
-Xgc:splitheap
</a>
</li>
<li class="md-nav__item">
<a href="../xgcmaxthreads/" class="md-nav__link">
-Xgcmaxthreads
</a>
</li>
<li class="md-nav__item">
<a href="../xgcpolicy/" class="md-nav__link">
-Xgcpolicy
</a>
</li>
<li class="md-nav__item">
<a href="../xgcthreads/" class="md-nav__link">
-Xgcthreads
</a>
</li>
<li class="md-nav__item">
<a href="../xgcworkpackets/" class="md-nav__link">
-Xgcworkpackets
</a>
</li>
<li class="md-nav__item">
<a href="../xint/" class="md-nav__link">
-Xint
</a>
</li>
<li class="md-nav__item">
<a href="../xss/" class="md-nav__link">
-Xiss
</a>
</li>
<li class="md-nav__item">
<a href="../xjit/" class="md-nav__link">
-Xjit
</a>
</li>
<li class="md-nav__item">
<a href="../xjni/" class="md-nav__link">
-Xjni
</a>
</li>
<li class="md-nav__item">
<a href="../xlinenumbers/" class="md-nav__link">
-Xlinenumbers
</a>
</li>
<li class="md-nav__item">
<a href="../xloa/" class="md-nav__link">
-Xloa
</a>
</li>
<li class="md-nav__item">
<a href="../xloaminimum/" class="md-nav__link">
-Xloainitial
</a>
</li>
<li class="md-nav__item">
<a href="../xloaminimum/" class="md-nav__link">
-Xloamaximum
</a>
</li>
<li class="md-nav__item">
<a href="../xloaminimum/" class="md-nav__link">
-Xloaminimum
</a>
</li>
<li class="md-nav__item">
<a href="../xlockreservation/" class="md-nav__link">
-XlockReservation
</a>
</li>
<li class="md-nav__item">
<a href="../xlockword/" class="md-nav__link">
-Xlockword
</a>
</li>
<li class="md-nav__item">
<a href="../xlog/" class="md-nav__link">
-Xlog
</a>
</li>
<li class="md-nav__item">
<a href="../xlp/" class="md-nav__link">
-Xlp
</a>
</li>
<li class="md-nav__item">
<a href="../xlpcodecache/" class="md-nav__link">
-Xlp:codecache
</a>
</li>
<li class="md-nav__item">
<a href="../xlpobjectheap/" class="md-nav__link">
-Xlp:objectheap
</a>
</li>
<li class="md-nav__item">
<a href="../xmine/" class="md-nav__link">
-Xmaxe
</a>
</li>
<li class="md-nav__item">
<a href="../xminf/" class="md-nav__link">
-Xmaxf
</a>
</li>
<li class="md-nav__item">
<a href="../xmint/" class="md-nav__link">
-Xmaxt
</a>
</li>
<li class="md-nav__item">
<a href="../xmca/" class="md-nav__link">
-Xmca
</a>
</li>
<li class="md-nav__item">
<a href="../xmca/" class="md-nav__link">
-Xmco
</a>
</li>
<li class="md-nav__item">
<a href="../xmcrs/" class="md-nav__link">
-Xmcrs
</a>
</li>
<li class="md-nav__item">
<a href="../xmine/" class="md-nav__link">
-Xmine
</a>
</li>
<li class="md-nav__item">
<a href="../xminf/" class="md-nav__link">
-Xminf
</a>
</li>
<li class="md-nav__item">
<a href="../xmint/" class="md-nav__link">
-Xmint
</a>
</li>
<li class="md-nav__item">
<a href="../xmn/" class="md-nav__link">
-Xmn
</a>
</li>
<li class="md-nav__item">
<a href="../xmn/" class="md-nav__link">
-Xmns
</a>
</li>
<li class="md-nav__item">
<a href="../xmn/" class="md-nav__link">
-Xmnx
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" class="md-nav__link">
-Xmo
</a>
</li>
<li class="md-nav__item">
<a href="../xmoi/" class="md-nav__link">
-Xmoi
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" class="md-nav__link">
-Xmos
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" class="md-nav__link">
-Xmox
</a>
</li>
<li class="md-nav__item">
<a href="../xmr/" class="md-nav__link">
-Xmr
</a>
</li>
<li class="md-nav__item">
<a href="../xmr/" class="md-nav__link">
-Xmrx
</a>
</li>
<li class="md-nav__item">
<a href="../xms/" class="md-nav__link">
-Xms
</a>
</li>
<li class="md-nav__item">
<a href="../xmso/" class="md-nav__link">
-Xmso
</a>
</li>
<li class="md-nav__item">
<a href="../xms/" class="md-nav__link">
-Xmx
</a>
</li>
<li class="md-nav__item">
<a href="../xaot/" class="md-nav__link">
-Xnoaot
</a>
</li>
<li class="md-nav__item">
<a href="../xclassgc/" class="md-nav__link">
-Xnoclassgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactexplicitgc/" class="md-nav__link">
-Xnocompactexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactgc/" class="md-nav__link">
-Xnocompactgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompressedrefs/" class="md-nav__link">
-Xnocompressedrefs
</a>
</li>
<li class="md-nav__item">
<a href="../xjit/" class="md-nav__link">
-Xnojit
</a>
</li>
<li class="md-nav__item">
<a href="../xlinenumbers/" class="md-nav__link">
-Xnolinenumbers
</a>
</li>
<li class="md-nav__item">
<a href="../xloa/" class="md-nav__link">
-Xnoloa
</a>
</li>
<li class="md-nav__item">
<a href="../xsigcatch/" class="md-nav__link">
-Xnosigcatch
</a>
</li>
<li class="md-nav__item">
<a href="../xsigchain/" class="md-nav__link">
-Xnosigchain
</a>
</li>
<li class="md-nav__item">
<a href="../xnumanone/" class="md-nav__link">
-Xnuma:none
</a>
</li>
<li class="md-nav__item">
<a href="../xoptionsfile/" class="md-nav__link">
-Xoptionsfile
</a>
</li>
<li class="md-nav__item">
<a href="../xquickstart/" class="md-nav__link">
-Xquickstart
</a>
</li>
<li class="md-nav__item">
<a href="../xrs/" class="md-nav__link">
-Xrs
</a>
</li>
<li class="md-nav__item">
<a href="../xsamplingexpirationtime/" class="md-nav__link">
-XsamplingExpirationTime
</a>
</li>
<li class="md-nav__item">
<a href="../xscdmx/" class="md-nav__link">
-Xscdmx
</a>
</li>
<li class="md-nav__item">
<a href="../xscminaot/" class="md-nav__link">
-Xscmaxaot
</a>
</li>
<li class="md-nav__item">
<a href="../xscminjitdata/" class="md-nav__link">
-Xscmaxjitdata
</a>
</li>
<li class="md-nav__item">
<a href="../xscminaot/" class="md-nav__link">
-Xscminaot
</a>
</li>
<li class="md-nav__item">
<a href="../xscminjitdata/" class="md-nav__link">
-Xscminjitdata
</a>
</li>
<li class="md-nav__item">
<a href="../xscmx/" class="md-nav__link">
-Xscmx
</a>
</li>
<li class="md-nav__item">
<a href="../xshareclasses/" class="md-nav__link">
-Xshareclasses
</a>
</li>
<li class="md-nav__item">
<a href="../xsigcatch/" class="md-nav__link">
-Xsigcatch
</a>
</li>
<li class="md-nav__item">
<a href="../xsigchain/" class="md-nav__link">
-Xsigchain
</a>
</li>
<li class="md-nav__item">
<a href="../xsignal/" class="md-nav__link">
-Xsignal
</a>
</li>
<li class="md-nav__item">
<a href="../xsoftmx/" class="md-nav__link">
-Xsoftmx
</a>
</li>
<li class="md-nav__item">
<a href="../xsoftrefthreshold/" class="md-nav__link">
-Xsoftrefthreshold
</a>
</li>
<li class="md-nav__item">
<a href="../xss/" class="md-nav__link">
-Xss
</a>
</li>
<li class="md-nav__item">
<a href="../xss/" class="md-nav__link">
-Xssi
</a>
</li>
<li class="md-nav__item">
<a href="../xsyslog/" class="md-nav__link">
-Xsyslog
</a>
</li>
<li class="md-nav__item">
<a href="../xtgc/" class="md-nav__link">
-Xtgc
</a>
</li>
<li class="md-nav__item">
<a href="../xthr/" class="md-nav__link">
-Xthr
</a>
</li>
<li class="md-nav__item">
<a href="../xtlhprefetch/" class="md-nav__link">
-XtlhPrefetch
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
-Xtrace
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
-Xtrace
</a>
<nav class="md-nav md-nav--secondary" aria-label="On this page...">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
On this page...
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#xtrace-option-builder" class="md-nav__link">
Xtrace Option Builder
</a>
</li>
<li class="md-nav__item">
<a href="#syntax" class="md-nav__link">
Syntax
</a>
<nav class="md-nav" aria-label="Syntax">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#configuring-trace" class="md-nav__link">
Configuring trace
</a>
</li>
<li class="md-nav__item">
<a href="#controlling-tracepoint-activation" class="md-nav__link">
Controlling tracepoint activation
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#about-trace" class="md-nav__link">
About trace
</a>
</li>
<li class="md-nav__item">
<a href="#default-tracing" class="md-nav__link">
Default tracing
</a>
<nav class="md-nav" aria-label="Default tracing">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#default-memory-management-tracing" class="md-nav__link">
Default memory management tracing
</a>
</li>
<li class="md-nav__item">
<a href="#default-assertion-tracing" class="md-nav__link">
Default assertion tracing
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#tracepoint-activation" class="md-nav__link">
Tracepoint activation
</a>
<nav class="md-nav" aria-label="Tracepoint activation">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#tracepoint-specification" class="md-nav__link">
Tracepoint specification
</a>
</li>
<li class="md-nav__item">
<a href="#trace-levels" class="md-nav__link">
Trace levels
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#parameters" class="md-nav__link">
Parameters
</a>
<nav class="md-nav" aria-label="Parameters">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#buffers" class="md-nav__link">
buffers
</a>
</li>
<li class="md-nav__item">
<a href="#count-tracepoint" class="md-nav__link">
count (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#exception-tracepoint" class="md-nav__link">
exception (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#exceptionoutput" class="md-nav__link">
exception.output
</a>
</li>
<li class="md-nav__item">
<a href="#external-tracepoint" class="md-nav__link">
external (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#help" class="md-nav__link">
help
</a>
</li>
<li class="md-nav__item">
<a href="#iprint-tracepoint" class="md-nav__link">
iprint (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#maximal-tracepoint" class="md-nav__link">
maximal (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#methods" class="md-nav__link">
methods
</a>
</li>
<li class="md-nav__item">
<a href="#minimal-tracepoint" class="md-nav__link">
minimal (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#none-tracepoint" class="md-nav__link">
none (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#output" class="md-nav__link">
output
</a>
</li>
<li class="md-nav__item">
<a href="#print-tracepoint" class="md-nav__link">
print (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#properties" class="md-nav__link">
properties
</a>
</li>
<li class="md-nav__item">
<a href="#resume" class="md-nav__link">
resume
</a>
</li>
<li class="md-nav__item">
<a href="#resumecount" class="md-nav__link">
resumecount
</a>
</li>
<li class="md-nav__item">
<a href="#sleeptime" class="md-nav__link">
sleeptime
</a>
</li>
<li class="md-nav__item">
<a href="#stackdepth" class="md-nav__link">
stackdepth
</a>
</li>
<li class="md-nav__item">
<a href="#suspend" class="md-nav__link">
suspend
</a>
</li>
<li class="md-nav__item">
<a href="#suspendcount" class="md-nav__link">
suspendcount
</a>
</li>
<li class="md-nav__item">
<a href="#trigger" class="md-nav__link">
trigger
</a>
<nav class="md-nav" aria-label="trigger">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#types" class="md-nav__link">
Types
</a>
</li>
<li class="md-nav__item">
<a href="#actions" class="md-nav__link">
Actions
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#what" class="md-nav__link">
what
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#see-also" class="md-nav__link">
See also
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../xtunevirtualized/" class="md-nav__link">
-Xtune:virtualized
</a>
</li>
<li class="md-nav__item">
<a href="../xverbosegclog/" class="md-nav__link">
-Xverbosegclog
</a>
</li>
<li class="md-nav__item">
<a href="../xverify/" class="md-nav__link">
-Xverify
</a>
</li>
<li class="md-nav__item">
<a href="../xzero/" class="md-nav__link">
-Xzero
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_16_6" type="checkbox" id="__nav_16_6" >
<label class="md-nav__link" for="__nav_16_6">
JVM -XX options
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="JVM -XX options" data-md-level="2">
<label class="md-nav__title" for="__nav_16_6">
<span class="md-nav__icon md-icon"></span>
JVM -XX options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../xx_jvm_commands/" class="md-nav__link">
Using -XX options
</a>
</li>
<li class="md-nav__item">
<a href="../xxactiveprocessorcount/" class="md-nav__link">
-XXActiveProcessorCount
</a>
</li>
<li class="md-nav__item">
<a href="../xxadaptivegcthreading/" class="md-nav__link">
-XX:[+|-]AdaptiveGCThreading
</a>
</li>
<li class="md-nav__item">
<a href="../xxallowvmshutdown/" class="md-nav__link">
-XXallowvmshutdown
</a>
</li>
<li class="md-nav__item">
<a href="../xxalwayspretouch/" class="md-nav__link">
-XX:[+|-]AlwaysPreTouch
</a>
</li>
<li class="md-nav__item">
<a href="../xxclassrelationshipverifier/" class="md-nav__link">
-XX:[+|-]ClassRelationshipVerifier
</a>
</li>
<li class="md-nav__item">
<a href="../xxconcgcthreads/" class="md-nav__link">
-XX:ConcGCThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xxcodecachetotal/" class="md-nav__link">
-XX:codecachetotal
</a>
</li>
<li class="md-nav__item">
<a href="../xxcompactstrings/" class="md-nav__link">
-XX:[+|-]CompactStrings
</a>
</li>
<li class="md-nav__item">
<a href="../xxdiagnosesynconvaluebasedclasses/" class="md-nav__link">
-XX:DiagnoseSyncOnValueBasedClasses
</a>
</li>
<li class="md-nav__item">
<a href="../xxdisableexplicitgc/" class="md-nav__link">
-XX:[+|-]DisableExplicitGC
</a>
</li>
<li class="md-nav__item">
<a href="../xxdisclaimjitscratch/" class="md-nav__link">
-XX:[+|-]DisclaimJitScratch
</a>
</li>
<li class="md-nav__item">
<a href="../xxenable3164interoperability/" class="md-nav__link">
-XX:[+|-]Enable3164Interoperability
</a>
</li>
<li class="md-nav__item">
<a href="../xxenablecpumonitor/" class="md-nav__link">
-XX:[+|-]EnableCPUMonitor
</a>
</li>
<li class="md-nav__item">
<a href="../xxensurehashed/" class="md-nav__link">
-XX:[+|-]EnsureHashed
</a>
</li>
<li class="md-nav__item">
<a href="../xxexitonoutofmemoryerror/" class="md-nav__link">
-XX:[+|-]ExitOnOutOfMemoryError
</a>
</li>
<li class="md-nav__item">
<a href="../xxgloballockreservation/" class="md-nav__link">
-XX:[+|-]GlobalLockReservation
</a>
</li>
<li class="md-nav__item">
<a href="../xxhandlesigxfsz/" class="md-nav__link">
-XX:[+|-]HandleSIGXFSZ
</a>
</li>
<li class="md-nav__item">
<a href="../xxhandlesigabrt/" class="md-nav__link">
-XX:[+|-]HandleSIGABRT
</a>
</li>
<li class="md-nav__item">
<a href="../xxheapdumponoutofmemory/" class="md-nav__link">
-XX:[+|-]HeapDumpOnOutOfMemory
</a>
</li>
<li class="md-nav__item">
<a href="../xxheapdumppath/" class="md-nav__link">
-XX:HeapDumpPath
</a>
</li>
<li class="md-nav__item">
<a href="../xxheapmanagementmxbeancompatibility/" class="md-nav__link">
-XX:[+|-]HeapManagementMXBeanCompatibility
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuningcompactonidle/" class="md-nav__link">
-XX:[+|-]IdleTuningCompactOnIdle
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuninggconidle/" class="md-nav__link">
-XX:[+|-]IdleTuningGcOnIdle
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuningminfreeheaponidle/" class="md-nav__link">
-XX:IdleTuningMinFreeHeapOnIdle
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuningminidlewaittime/" class="md-nav__link">
-XX:IdleTuningMinIdleWaitTime
</a>
</li>
<li class="md-nav__item">
<a href="../xxignoreunrecognizedvmoptions/" class="md-nav__link">
-XX:[+|-]IgnoreUnrecognizedVMOptions
</a>
</li>
<li class="md-nav__item">
<a href="../xxignoreunrecognizedxxcolonoptions/" class="md-nav__link">
-XX:[+|-]IgnoreUnrecognizedXXColonOptions
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialrampercentage/" class="md-nav__link">
-XX:InitialRAMPercentage
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialheapsize/" class="md-nav__link">
-XX:InitialHeapSize
</a>
</li>
<li class="md-nav__item">
<a href="../xxinterleavememory/" class="md-nav__link">
-XX:[+|-]InterleaveMemory
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitinlinewatches/" class="md-nav__link">
-XX:[+|-]JITInlineWatches
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserveraddress/" class="md-nav__link">
-XX:JITServerAddress
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserveraotcachename/" class="md-nav__link">
-XX:JITServerAOTCacheName
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserveruseaotcache/" class="md-nav__link">
-XX:[+|-]JITServerUseAOTCache
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserverlocalsynccompiles/" class="md-nav__link">
-XX:[+|-]JITServerLocalSyncCompiles
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserverlogconnections/" class="md-nav__link">
-XX:[+|-]JITServerLogConnections
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservermetrics/" class="md-nav__link">
-XX:JITServerMetrics
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservermetricsport/" class="md-nav__link">
-XX:JITServerMetricsPort
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservermetricssslkey/" class="md-nav__link">
-XX:JITServerMetricsSSLCert
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservermetricssslkey/" class="md-nav__link">
-XX:JITServerMetricsSSLKey
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserverport/" class="md-nav__link">
-XX:JITServerPort
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservershareromclasses/" class="md-nav__link">
-XX:JITServerShareROMClasses
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserversslcert/" class="md-nav__link">
-XX:JITServerSSLCert
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserversslcert/" class="md-nav__link">
-XX:JITServerSSLKey
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserversslcert/" class="md-nav__link">
-XX:JITServerSSLRootCerts
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservertimeout/" class="md-nav__link">
-XX:JITServerTimeout
</a>
</li>
<li class="md-nav__item">
<a href="../xxlazysymbolresolution/" class="md-nav__link">
-XX:[+|-]LazySymbolResolution
</a>
</li>
<li class="md-nav__item">
<a href="../xxlegacyxlogoption/" class="md-nav__link">
-XX:[+|-]LegacyXLogOption
</a>
</li>
<li class="md-nav__item">
<a href="../xxmaxdirectmemorysize/" class="md-nav__link">
-XX:MaxDirectMemorySize
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialheapsize/" class="md-nav__link">
-XX:MaxHeapSize
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialrampercentage/" class="md-nav__link">
-XX:MaxRAMPercentage
</a>
</li>
<li class="md-nav__item">
<a href="../xxonoutofmemoryerror/" class="md-nav__link">
-XX:OnOutOfMemoryError
</a>
</li>
<li class="md-nav__item">
<a href="../xxopenj9commandlineenv/" class="md-nav__link">
-XX:[+|-]OpenJ9CommandLineEnv
</a>
</li>
<li class="md-nav__item">
<a href="../xxoriginaljdk8heapsizecompatibilitymode/" class="md-nav__link">
-XX:[+|-]OriginalJDK8HeapSizeCompatibilityMode
</a>
</li>
<li class="md-nav__item">
<a href="../xxnosuballoc32bitmem/" class="md-nav__link">
-XXnosuballoc32bitmem
</a>
</li>
<li class="md-nav__item">
<a href="../xxpagealigndirectmemory/" class="md-nav__link">
-XX:[+|-]PageAlignDirectMemory
</a>
</li>
<li class="md-nav__item">
<a href="../xxparallelcmsthreads/" class="md-nav__link">
-XX:ParallelCMSThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xxparallelgcmaxthreads/" class="md-nav__link">
-XX:ParallelGCMaxThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xxparallelgcthreads/" class="md-nav__link">
-XX:ParallelGCThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xxperftool/" class="md-nav__link">
-XX:[+|-]PerfTool
</a>
</li>
<li class="md-nav__item">
<a href="../xxportablesharedcache/" class="md-nav__link">
-XX:[+|-]PortableSharedCache
</a>
</li>
<li class="md-nav__item">
<a href="../xxpositiveidentityhash/" class="md-nav__link">
-XX:[+|-]PositiveIdentityHash
</a>
</li>
<li class="md-nav__item">
<a href="../xxprintcodecache/" class="md-nav__link">
-XX:[+|-]PrintCodeCache
</a>
</li>
<li class="md-nav__item">
<a href="../xxprintflagsfinal/" class="md-nav__link">
-XX:[+|-]PrintFlagsFinal
</a>
</li>
<li class="md-nav__item">
<a href="../xxreadipinfoforras/" class="md-nav__link">
-XX:[+|-]ReadIPInfoForRAS
</a>
</li>
<li class="md-nav__item">
<a href="../xxreducecpumonitoroverhead/" class="md-nav__link">
-XX:[+|-]ReduceCPUMonitorOverhead
</a>
</li>
<li class="md-nav__item">
<a href="../xxrequirejitserver/" class="md-nav__link">
-XX:[+|-]RequireJITServer
</a>
</li>
<li class="md-nav__item">
<a href="../xxruntimeinstrumentation/" class="md-nav__link">
-XX:[+|-]RuntimeInstrumentation
</a>
</li>
<li class="md-nav__item">
<a href="../xxsethwprefetch/" class="md-nav__link">
-XXsetHWPrefetch
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareanonymousclasses/" class="md-nav__link">
-XX:[+|-]ShareAnonymousClasses
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareclassesenablebci/" class="md-nav__link">
-XX:ShareClassesDisableBCI
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareclassesenablebci/" class="md-nav__link">
-XX:ShareClassesEnableBCI
</a>
</li>
<li class="md-nav__item">
<a href="../xxsharedcachehardlimit/" class="md-nav__link">
-XX:SharedCacheHardLimit
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareunsafeclasses/" class="md-nav__link">
-XX:[+|-]ShareUnsafeClasses
</a>
</li>
<li class="md-nav__item">
<a href="../xxshowhiddenframes/" class="md-nav__link">
-XX:[+|-]ShowHiddenFrames
</a>
</li>
<li class="md-nav__item">
<a href="../xxshownativestacksymbols/" class="md-nav__link">
-XX:[+|-]ShowNativeStackSymbols
</a>
</li>
<li class="md-nav__item">
<a href="../xxstacktraceinthrowable/" class="md-nav__link">
-XX:-StackTraceInThrowable
</a>
</li>
<li class="md-nav__item">
<a href="../xxtransparenthugepage/" class="md-nav__link">
-XX:[+|-]TransparentHugePage
</a>
</li>
<li class="md-nav__item">
<a href="../xxusecompressedoops/" class="md-nav__link">
-XX:[+|-]UseCompressedOops
</a>
</li>
<li class="md-nav__item">
<a href="../xxusecontainersupport/" class="md-nav__link">
-XX:[+|-]UseContainerSupport
</a>
</li>
<li class="md-nav__item">
<a href="../xxusegcstartuphints/" class="md-nav__link">
-XX:[+|-]UseGCStartupHints
</a>
</li>
<li class="md-nav__item">
<a href="../xxusejitserver/" class="md-nav__link">
-XX:[+|-]UseJITServer
</a>
</li>
<li class="md-nav__item">
<a href="../xxusenogc/" class="md-nav__link">
-XX:[+|-]UseNoGC
</a>
</li>
<li class="md-nav__item">
<a href="../xxutfcache/" class="md-nav__link">
-XX:[+|-]UTFCache
</a>
</li>
<li class="md-nav__item">
<a href="../xxverboseverification/" class="md-nav__link">
-XX:[+|-]VerboseVerification
</a>
</li>
<li class="md-nav__item">
<a href="../xxvmlockclassloader/" class="md-nav__link">
-XX:[+|-]VMLockClassLoader
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_17" type="checkbox" id="__nav_17" >
<label class="md-nav__link" for="__nav_17">
Reference
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label=" Reference" data-md-level="1">
<label class="md-nav__title" for="__nav_17">
<span class="md-nav__icon md-icon"></span>
Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../openj9_support/" class="md-nav__link">
Supported environments
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_defaults/" class="md-nav__link">
Default settings
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_signals/" class="md-nav__link">
Signal handling
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_directories/" class="md-nav__link">
Directory conventions
</a>
</li>
<li class="md-nav__item">
<a href="../messages_intro/" class="md-nav__link">
OpenJ9 messages
</a>
</li>
<li class="md-nav__item">
<a href="../env_var/" class="md-nav__link">
Environment variables
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_18" type="checkbox" id="__nav_18" >
<label class="md-nav__link" for="__nav_18">
API documentation
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="API documentation" data-md-level="1">
<label class="md-nav__title" for="__nav_18">
<span class="md-nav__icon md-icon"></span>
API documentation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../api-overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_18_2" type="checkbox" id="__nav_18_2" >
<label class="md-nav__link" for="__nav_18_2">
Java 8 API
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Java 8 API" data-md-level="2">
<label class="md-nav__title" for="__nav_18_2">
<span class="md-nav__icon md-icon"></span>
Java 8 API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../api-conditionhandling/" class="md-nav__link">
Condition exception handling
</a>
</li>
<li class="md-nav__item">
<a href="../api-cuda/" class="md-nav__link">
CUDA4J
</a>
</li>
<li class="md-nav__item">
<a href="../api-daa/" class="md-nav__link">
Data access acceleration
</a>
</li>
<li class="md-nav__item">
<a href="../api-dtfj/" class="md-nav__link">
DTFJ
</a>
</li>
<li class="md-nav__item">
<a href="../api-gpu/" class="md-nav__link">
GPU
</a>
</li>
<li class="md-nav__item">
<a href="../api-jvm/" class="md-nav__link">
JVM diagnostic utilities
</a>
</li>
<li class="md-nav__item">
<a href="../api-langmgmt/" class="md-nav__link">
Monitoring and management
</a>
</li>
<li class="md-nav__item">
<a href="../api-shrc/" class="md-nav__link">
Shared classes
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../api-jdk11/" class="md-nav__link">
Java 11 API
</a>
</li>
<li class="md-nav__item">
<a href="../api-jdk17/" class="md-nav__link">
Java 17 API
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../legal/" class="md-nav__link">
Legal
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="On this page...">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
On this page...
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#xtrace-option-builder" class="md-nav__link">
Xtrace Option Builder
</a>
</li>
<li class="md-nav__item">
<a href="#syntax" class="md-nav__link">
Syntax
</a>
<nav class="md-nav" aria-label="Syntax">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#configuring-trace" class="md-nav__link">
Configuring trace
</a>
</li>
<li class="md-nav__item">
<a href="#controlling-tracepoint-activation" class="md-nav__link">
Controlling tracepoint activation
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#about-trace" class="md-nav__link">
About trace
</a>
</li>
<li class="md-nav__item">
<a href="#default-tracing" class="md-nav__link">
Default tracing
</a>
<nav class="md-nav" aria-label="Default tracing">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#default-memory-management-tracing" class="md-nav__link">
Default memory management tracing
</a>
</li>
<li class="md-nav__item">
<a href="#default-assertion-tracing" class="md-nav__link">
Default assertion tracing
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#tracepoint-activation" class="md-nav__link">
Tracepoint activation
</a>
<nav class="md-nav" aria-label="Tracepoint activation">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#tracepoint-specification" class="md-nav__link">
Tracepoint specification
</a>
</li>
<li class="md-nav__item">
<a href="#trace-levels" class="md-nav__link">
Trace levels
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#parameters" class="md-nav__link">
Parameters
</a>
<nav class="md-nav" aria-label="Parameters">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#buffers" class="md-nav__link">
buffers
</a>
</li>
<li class="md-nav__item">
<a href="#count-tracepoint" class="md-nav__link">
count (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#exception-tracepoint" class="md-nav__link">
exception (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#exceptionoutput" class="md-nav__link">
exception.output
</a>
</li>
<li class="md-nav__item">
<a href="#external-tracepoint" class="md-nav__link">
external (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#help" class="md-nav__link">
help
</a>
</li>
<li class="md-nav__item">
<a href="#iprint-tracepoint" class="md-nav__link">
iprint (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#maximal-tracepoint" class="md-nav__link">
maximal (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#methods" class="md-nav__link">
methods
</a>
</li>
<li class="md-nav__item">
<a href="#minimal-tracepoint" class="md-nav__link">
minimal (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#none-tracepoint" class="md-nav__link">
none (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#output" class="md-nav__link">
output
</a>
</li>
<li class="md-nav__item">
<a href="#print-tracepoint" class="md-nav__link">
print (tracepoint)
</a>
</li>
<li class="md-nav__item">
<a href="#properties" class="md-nav__link">
properties
</a>
</li>
<li class="md-nav__item">
<a href="#resume" class="md-nav__link">
resume
</a>
</li>
<li class="md-nav__item">
<a href="#resumecount" class="md-nav__link">
resumecount
</a>
</li>
<li class="md-nav__item">
<a href="#sleeptime" class="md-nav__link">
sleeptime
</a>
</li>
<li class="md-nav__item">
<a href="#stackdepth" class="md-nav__link">
stackdepth
</a>
</li>
<li class="md-nav__item">
<a href="#suspend" class="md-nav__link">
suspend
</a>
</li>
<li class="md-nav__item">
<a href="#suspendcount" class="md-nav__link">
suspendcount
</a>
</li>
<li class="md-nav__item">
<a href="#trigger" class="md-nav__link">
trigger
</a>
<nav class="md-nav" aria-label="trigger">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#types" class="md-nav__link">
Types
</a>
</li>
<li class="md-nav__item">
<a href="#actions" class="md-nav__link">
Actions
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#what" class="md-nav__link">
what
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#see-also" class="md-nav__link">
See also
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<!--
* Copyright (c) 2017, 2022 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<h1 id="-xtrace">-Xtrace</h1>
<p>Eclipse OpenJ9&trade; VM tracing is a powerful feature to help you diagnose problems with minimal effect on performance. Tracing is enabled by default, together with a small set of trace points going to memory buffers. You can enable tracepoints at run time by using levels, components, group names, or individual tracepoint identifiers to trace VM internal operations and instrumented Java&trade; applications. You can also trace Java methods. See the <a href="#about-trace">About trace</a> section that follows for more detail.</p>
<p>Trace data can be output in human-readable or in compressed binary formats. The VM provides a tool to process and convert the compressed binary data into a readable format. See <a href="../tool_traceformat/">Trace formatter</a>. </p>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> You can also control trace by using the <code>com.ibm.jvm.Trace</code> API or by using JVMTI from an external agent.</p>
<h2 id="xtrace-option-builder">Xtrace Option Builder</h2>
<p>Use the <a href="https://www.eclipse.org/openj9/tools/xtrace_option_builder.html" target="_blank">Xtrace Option Builder tool</a> to help you specify the correct options and avoid incompatibilities.</p>
<h2 id="syntax">Syntax</h2>
<pre><code>-Xtrace:&lt;parameter&gt;
</code></pre>
<p>You can get help with <code>-Xtrace</code>by using the following options:</p>
<ul>
<li><code>-Xtrace:help</code> &nbsp; Displays general trace help</li>
<li><code>-Xtrace:what</code> &nbsp; Shows the current trace settings</li>
</ul>
<!--
The following table lists the parameters for `-Xtrace` that provide usage and configuration information:
| Command | Result |
|----------------|------------------------------------|
| `-Xtrace:help` | Displays general trace help |
| `-Xtrace:what` | Shows the current trace settings |
-->
<h3 id="configuring-trace">Configuring trace</h3>
<p>The following parameters can be used to configure trace. (Follow links for more information about individual options.)</p>
<table>
<thead>
<tr>
<th>Command</th>
<th>Result</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#properties"><code>-Xtrace:properties[=&lt;filename&gt;]</code></a></td>
<td>Configures trace options based on a file</td>
</tr>
<tr>
<td><a href="#buffers"><code>-Xtrace:buffers=&lt;size&gt;[dynamic\|nodynamic]</code></a></td>
<td>Modifies the size of buffers that are used to store trace data</td>
</tr>
<tr>
<td><a href="#exceptionoutput"><code>-Xtrace:exception.output=&lt;filename&gt;[,&lt;size&gt;]</code></a></td>
<td>Redirects exceptions trace data to a file.</td>
</tr>
<tr>
<td><a href="#methods"><code>-Xtrace:methods=&lt;method_specification&gt;</code></a></td>
<td>Traces methods</td>
</tr>
<tr>
<td><a href="#output"><code>-Xtrace:output=&lt;filename&gt;[,&lt;size&gt;[,&lt;generations&gt;]]</code></a></td>
<td>Sends trace data to a file, optionally of a specific size and number of generations.</td>
</tr>
<tr>
<td><a href="#resume"><code>-Xtrace:resume</code></a></td>
<td>Resumes tracing globally.</td>
</tr>
<tr>
<td><a href="#resumecount"><code>-Xtrace:resumecount=&lt;count&gt;</code></a></td>
<td>Enables tracing at a thread level after a specified count.</td>
</tr>
<tr>
<td><a href="#sleeptime"><code>-Xtrace:sleeptime=&lt;time&gt;</code></a></td>
<td>Pauses trace operations for a specified length of time.</td>
</tr>
<tr>
<td><a href="#stackdepth"><code>-Xtrace:stackdepth=&lt;n&gt;</code></a></td>
<td>Limits the maximum number of stack frames reported by the jstacktrace trace trigger action.</td>
</tr>
<tr>
<td><a href="#suspend"><code>-Xtrace:suspend</code></a></td>
<td>Suspends tracing globally.</td>
</tr>
<tr>
<td><a href="#suspendcount"><code>-Xtrace:suspendcount=&lt;count&gt;</code></a></td>
<td>Suspends tracing at a thread level after a specified count.</td>
</tr>
<tr>
<td><a href="#trigger"><code>-Xtrace:trigger=&lt;clause&gt;</code></a></td>
<td>Determines when various triggered trace actions occur, including turning trace on or off.</td>
</tr>
</tbody>
</table>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> If an option value contains commas, it must be enclosed in braces. For example: <code>methods={java/lang/*,com/ibm/*}</code></p>
<h3 id="controlling-tracepoint-activation">Controlling tracepoint activation</h3>
<p>The following parameters can be used to control tracepoint activation. (Follow links for more information about individual options.)</p>
<table>
<thead>
<tr>
<th>Command</th>
<th>Result</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#maximal-tracepoint"><code>-Xtrace:maximal=&lt;tracepoint_specification&gt;</code></a></td>
<td>Records all associated data.</td>
</tr>
<tr>
<td><a href="#minimal-tracepoint"><code>-Xtrace:minimal=&lt;tracepoint_specification&gt;</code></a></td>
<td>Records only the time stamp and tracepoint identifier.</td>
</tr>
<tr>
<td><a href="#count-tracepoint"><code>-Xtrace:count=&lt;tracepoint_specification&gt;</code></a></td>
<td>Counts the tracepoints that are used in a trace configuration.</td>
</tr>
<tr>
<td><a href="#print-tracepoint"><code>-Xtrace:print=&lt;tracepoint_specification&gt;</code></a></td>
<td>Prints the specified tracepoints to stderr in real time.</td>
</tr>
<tr>
<td><a href="#iprint-tracepoint"><code>-Xtrace:iprint=&lt;tracepoint_specification&gt;</code></a></td>
<td>Prints the specified tracepoints to stderr in real time with indentation.</td>
</tr>
<tr>
<td><a href="#exception-tracepoint"><code>-Xtrace:exception=&lt;tracepoint_specification&gt;</code></a></td>
<td>Enables exception tracing.</td>
</tr>
<tr>
<td><a href="#external-tracepoint"><code>-Xtrace:external&lt;tracepoint_specification&gt;</code></a></td>
<td>Routes trace data to trace listeners, which are registered by using the JVMTI APIs.</td>
</tr>
<tr>
<td><a href="#none-tracepoint"><code>-Xtrace:none[=&lt;tracepoint_specification&gt;]</code></a></td>
<td>Prevents the trace engine from loading if it is the only trace option specified.</td>
</tr>
</tbody>
</table>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> These options control which individual tracepoints are activated at run time and the implicit destination of the trace data. All these properties are independent of each other and can be mixed and matched in any way that you choose. For more information, see <a href="#tracepoint-activation">Tracepoint activation</a>.</p>
<h2 id="about-trace">About trace</h2>
<p>With the OpenJ9 trace feature, you can trace VM internal operations, Java applications, and Java methods, or any combination of these.</p>
<dl>
<dt>VM internal operations</dt>
<dd>The OpenJ9 virtual machine (VM) is extensively instrumented with tracepoints for tracing operations. Interpreting this trace data requires detailed knowledge of the VM, and is intended to diagnose VM problems. No guarantee is given that tracepoints will not vary from release to release and from platform to platform.</dd>
<dt>Applications</dt>
<dd>VM trace contains an application trace facility that allows tracepoints to be placed in Java code, enabling you to combine trace data with the other forms of trace. This capability is supported by the <code>com.ibm.jvm.Trace</code> API. Note that an instrumented Java application runs only on an OpenJ9 VM. For more information, see <a href="https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.vm.80.doc/docs/trace_application.html">Application trace</a>.</dd>
<dt>Java methods</dt>
<dd>Use method trace to debug and trace application code and the system classes provided with the VM. You can trace entry to and exit from Java methods run by the VM. You can select method trace by classname, method name, or both. You can also use wildcards to create complex method selections. For more information about command syntax, see <a href="#methods">methods</a>.</dd>
</dl>
<p>Trace can produce large amounts of data in a very short time. Before running trace, think carefully about what information you need in order to solve the problem. Here are some considerations:</p>
<ul>
<li>If you need only the trace information that is produced shortly before the problem occurs, consider wrapping the file by using the <code>output</code> option.</li>
<li>In many cases, just use internal trace with an increased buffer size and snap the trace when the problem occurs.</li>
<li>If the problem results in a thread stack dump or operating system signal or exception, trace buffers are snapped automatically to a file that is in the current directory. The file is called: <code>Snapnnnn.
yyyymmdd.hhmmssth.process.trc</code>.</li>
</ul>
<p>You must also think carefully about which components need to be traced and what level of tracing is required. For example, if you are tracing a suspected shared classes problem, it might be enough to trace all components at level 1, and <strong>j9shr</strong> at level 9, while <code>maximal</code> can be used to show parameters and other information for the failing component. Tracepoint components and trace levels are described in the following sections: <a href="#tracepoint-specification">Tracepoint specification</a> and <a href="#trace-levels">Trace levels</a>.</p>
<p>There are two types of tracepoints inside the VM: </p>
<ul>
<li>Regular tracepoints include method tracepoints, application tracepoints, data tracepoints inside the VM and data tracepoints inside class libraries. You can display regular tracepoint data on the screen or save the data to a file. You can also use command line options to trigger specific actions when regular tracepoints fire.</li>
<li>Auxiliary tracepoints are a special type of tracepoint that can be fired only when another tracepoint is being processed. For example, the stack frame information produced by the jstacktrace <code>-Xtrace:trigger</code> command. You cannot control where auxiliary tracepoint data is sent and you cannot set triggers on auxiliary tracepoints. Auxiliary tracepoint data is sent to the same destination as the tracepoint that caused them to be generated.</li>
</ul>
<p>Trace data can be written to one of the following locations:</p>
<ul>
<li>Memory buffers that can be dumped or snapped when a problem occurs. Use the <a href="#buffers"><code>-Xtrace:buffers=&lt;size&gt;</code></a> option to control the size of the buffer allocated to each thread. Buffers allocated to a thread are discarded when that thread terminates. To examine the trace data captured in these memory buffers, you must snap or dump the data. Use the <a href="../xdump/#dump-agents"><code>-Xdump:snap</code></a> option to vary the events that cause a snap trace file to be produced. When produced, format the buffers by using the <a href="../tool_traceformat/">trace formatter</a>.</li>
<li>One or more files that are using buffered I/O. Use the <a href="#output"><code>-Xtrace:output</code></a> option.</li>
<li>An external agent in real time, using the <a href="#external-tracepoint"><code>-Xtrace:external</code></a> option.</li>
<li><code>stderr</code> in real time.</li>
<li>Any combination of the other items in this list.</li>
</ul>
<h2 id="default-tracing">Default tracing</h2>
<p>By default, the equivalent of the following trace command line is always available in the VM:</p>
<pre><code>-Xtrace:maximal=all{level1},exception=j9mm{gclogger}
</code></pre>
<p>When startup is complete, the equivalent of the following command line is added to enable level 2 trace points:</p>
<pre><code>-Xtrace:maximal=all{level2}
</code></pre>
<p>Level 2 is used for default tracing that would produce too much data during the startup of the VM. If you set other trace options on the command line, or before the VM finishes startup (through use of JVMTI or the <code>com.ibm.jvm.Trace</code> API), the level 2 trace points are enabled just before your trace options are processed. This behavior ensures that the default level 2 trace points do not override any changes that you specify.</p>
<p>The data generated by the tracepoints is continuously captured in wrapping memory buffers for each thread.</p>
<p>You can find tracepoint information in the following diagnostics data:</p>
<ul>
<li>System memory dumps, extracted by using jdmpview.</li>
<li>Snap traces, generated when the VM encounters a problem or an output file is specified. Using dump agents describes more ways to create a snap trace.</li>
<li>For exception trace only, in Javadumps.</li>
</ul>
<h3 id="default-memory-management-tracing">Default memory management tracing</h3>
<p>The default trace options are designed to ensure that Javadumps always contain a record of the most recent memory management history, regardless of how much work the VM has performed since the garbage collection cycle was last called.</p>
<p>The <code>exception=j9mm{gclogger}</code> clause of the default trace set specifies that a history of garbage collection cycles that have occurred in the VM is continuously recorded. The <strong>gclogger</strong> group of tracepoints in the <strong>j9mm</strong> component constitutes a set of tracepoints that record a snapshot of each garbage collection cycle. These tracepoints are recorded in their own separate buffer, called the exception buffer. The effect is that the tracepoints are not overwritten by the higher frequency tracepoints of the VM.</p>
<p>The <em>GC History</em> section of the Javadump is based on the information in the exception buffer. If a garbage collection cycle has occurred in a traced VM, the Java dump probably contains a <em>GC History</em> section.</p>
<h3 id="default-assertion-tracing">Default assertion tracing</h3>
<p>The VM includes assertions, implemented as special trace points. By default, internal assertions are detected and diagnostics logs are produced to help assess the error.</p>
<p>Assertion failures often indicate a serious problem, and the VM usually stops immediately. In these circumstances, raise an issue, including the standard error output and any diagnostic files that are produced.</p>
<p>When an assertion trace point is reached, a message like the following output is produced on the standard error stream:</p>
<pre><code>16:43:48.671 0x10a4800 j9vm.209 * ** ASSERTION FAILED ** at jniinv.c:251:
((javaVM == ((void *)0)))
</code></pre>
<p>This error stream is followed with information about the diagnostic logs produced:</p>
<pre><code>JVMDUMP007I JVM Requesting System Dump using 'core.20060426.124348.976.dmp'
JVMDUMP010I System Dump written to core.20060426.124348.976.dmp
JVMDUMP007I JVM Requesting Snap Dump using 'Snap0001.20060426.124648.976.trc'
JVMDUMP010I Snap Dump written to Snap0001.20060426.124648.976.trc
</code></pre>
<p>Assertions are special trace points. They can be enabled or disabled by using the standard trace command-line options.</p>
<p>Assertion failures might occur early during VM startup, before trace is enabled. In this case, the assert message has a different format, and is not prefixed by a timestamp or thread ID. For example:</p>
<pre><code>** ASSERTION FAILED ** j9vmutil.15 at thrinfo.c:371 Assert_VMUtil_true((
publicFlags &amp; 0x200))
</code></pre>
<p>Assertion failures that occur early during startup cannot be disabled. These failures do not produce diagnostic dumps, and do not cause the VM to stop.</p>
<h2 id="tracepoint-activation">Tracepoint activation</h2>
<p>The options that control which individual tracepoints are activated at run time and the implicit destination of the trace data are listed under <a href="#controlling-tracepoint-activation">Syntax: Controlling tracepoint activation</a></p>
<!--
The following options control which individual tracepoints are activated at run time and the implicit destination of the trace data. (Follow links for more information about individual options.)
- [`-Xtrace:maximal=<tracepoint_specification>`](#maximal)
- [`-Xtrace:minimal=<tracepoint_specification>`](#minimal)
- [`-Xtrace:count=<tracepoint_specification>`](#count)
- [`-Xtrace:print=<tracepoint_specification>`](#print)
- [`-Xtrace:iprint=<tracepoint_specification>`](#iprint)
- [`-Xtrace:exception=<tracepoint_specification>`](#exception)
- [`-Xtrace:exception.output=<filename>[,<size>]`](#exceptionoutput)
- [`-Xtrace:external<tracepoint_specification>`](#external)
- [`-Xtrace:none[=<tracepoint_specification>]`](#none)
-->
<p>In some cases, you must use them with other options. For example, if you specify <code>maximal</code> or <code>minimal</code> tracepoints, the trace data is put into memory buffers. If you are going to send the data to a file, you must use an <code>output</code> option to specify the destination file name.</p>
<p>With the exception of <code>none</code>, all options require at least one <code>&lt;tracepoint_specification&gt;</code>, which is described in the following section. Multiple statements of each type of trace are allowed and their effect is cumulative. If you want to use multiple trace options of the same name, use a properties file. (See <a href="#properties"><code>properties</code></a>.)</p>
<h3 id="tracepoint-specification">Tracepoint specification</h3>
<p>Tracepoints are enabled by specifying <em>component</em> and <em>tracepoint</em>.</p>
<p>If no qualifier parameters are entered, all tracepoints are enabled, except for <code>&lt;exception.output&gt;</code> trace, where the default is all {exception}.</p>
<p>The <code>&lt;tracepoint_specification&gt;</code> syntax can be further broken down as follows:</p>
<pre><code>[!]&lt;component&gt;[{&lt;group&gt;}] or [!]&lt;component&gt;[{&lt;type&gt;}] or [!]&lt;tracepoint_id&gt;[,&lt;tracepoint_id&gt;]
</code></pre>
<p>Where:</p>
<ul>
<li>The <code>!</code> symbol is a logical <em>not</em>. That is, the tracepoints that are in a specification starting with ! are turned off.</li>
<li><code>&lt;component&gt;</code> is a Java component.</li>
<li><code>&lt;group&gt;</code> is a tracepoint group, which is a set of tracepoints that are defined within a component.</li>
<li><code>&lt;type&gt;</code> is the tracepoint type: <code>entry</code>, <code>exit</code>, <code>event</code>, <code>exception</code>, and <code>eem</code>.</li>
<li><code>&lt;tracepoint_id&gt;</code> is the tracepoint identifier. The tracepoint identifier constitutes the component name of the tracepoint, followed by its integer number inside that component. For example, <code>j9mm.49</code>, <code>j9shr.20-29</code>, <code>j9vm.15</code>. To understand these numbers, see Determining the tracepoint ID of a tracepoint.</li>
</ul>
<p>Some tracepoints can be both an <code>exit</code> and an <code>exception</code>; that is, the function ended with an error. If you specify either <code>exit</code> or <code>exception</code>, these tracepoints are included.</p>
<p>Lists of Java components and tracepoint groups can be found in the tables that follow.</p>
<p>The following table lists the possible Java components (<code>&lt;component&gt;</code>). To include all Java components, specify <strong>all</strong>.</p>
<table>
<thead>
<tr>
<th>Component name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>avl</strong></td>
<td>VM AVL tree support</td>
</tr>
<tr>
<td><strong>io</strong></td>
<td>Class library java.io native code</td>
</tr>
<tr>
<td><strong>j9bcu</strong></td>
<td>VM byte code utilities</td>
</tr>
<tr>
<td><strong>j9bcverify</strong></td>
<td>VM byte code verification</td>
</tr>
<tr>
<td><strong>j9codertvm</strong></td>
<td>VM byte code run time</td>
</tr>
<tr>
<td><strong>j9dmp</strong></td>
<td>VM dump</td>
</tr>
<tr>
<td><strong>j9jcl</strong></td>
<td>VM class libraries</td>
</tr>
<tr>
<td><strong>j9jit</strong></td>
<td>VM JIT interface</td>
</tr>
<tr>
<td><strong>j9jni</strong></td>
<td>VM JNI support</td>
</tr>
<tr>
<td><strong>j9jvmti</strong></td>
<td>VM JVMTI support</td>
</tr>
<tr>
<td><strong>j9mm</strong></td>
<td>VM memory management</td>
</tr>
<tr>
<td><strong>j9prt</strong></td>
<td>VM port library</td>
</tr>
<tr>
<td><strong>j9scar</strong></td>
<td>VM class library interface</td>
</tr>
<tr>
<td><strong>j9shr</strong></td>
<td>VM shared classes</td>
</tr>
<tr>
<td><strong>j9trc</strong></td>
<td>VM trace</td>
</tr>
<tr>
<td><strong>j9util</strong></td>
<td>VM utilities</td>
</tr>
<tr>
<td><strong>j9vm</strong></td>
<td>VM general</td>
</tr>
<tr>
<td><strong>j9vmutil</strong></td>
<td>VM utilities</td>
</tr>
<tr>
<td><strong>j9vrb</strong></td>
<td>VM verbose stack walker</td>
</tr>
<tr>
<td><strong>map</strong></td>
<td>VM mapped memory support</td>
</tr>
<tr>
<td><strong>mt</strong></td>
<td>Java methods (see <strong>Note</strong>)</td>
</tr>
<tr>
<td><strong>net</strong></td>
<td>Class library TCP/IP networking native code</td>
</tr>
<tr>
<td><strong>pool</strong></td>
<td>VM storage pool support</td>
</tr>
<tr>
<td><strong>rpc</strong></td>
<td>VM RPC support</td>
</tr>
<tr>
<td><strong>simplepool</strong></td>
<td>VM storage pool support</td>
</tr>
<tr>
<td><strong>sunvmi</strong></td>
<td>VM class library interface</td>
</tr>
</tbody>
</table>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> When specifying the <strong>mt</strong> component you must also specify the <code>methods</code> option.</p>
<p>The following table lists all the tracepoint groups (<code>&lt;group&gt;</code>). Each group is associated with one or more Java components:</p>
<table>
<thead>
<tr>
<th>Component name or names</th>
<th>Group name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>j9mm</strong></td>
<td><code>gclogger</code></td>
<td>A set of tracepoints that record each garbage collection cycle. Equivalent to <code>-verbose:gc</code> output</td>
</tr>
<tr>
<td><strong>j9prt</strong></td>
<td><code>nlsmessage</code></td>
<td>A set of tracepoints that record each NLS message that is issued by the VM.</td>
</tr>
<tr>
<td><strong>j9jcl</strong>, <strong>j9vm</strong></td>
<td><code>verboseclass</code></td>
<td>A set of tracepoints that record each class as it is loaded. Equivalent to <code>-verbose:class</code> output.</td>
</tr>
<tr>
<td><strong>j9jni</strong>, <strong>j9vm</strong></td>
<td><code>checkjni</code></td>
<td>A set of tracepoints that record JNI function checks. Equivalent to <code>-Xcheck:jni</code> output.</td>
</tr>
<tr>
<td><strong>j9vm</strong></td>
<td><code>checkmemory</code></td>
<td>A set of tracepoints that record memory checks. Equivalent to <code>-Xcheck:memory</code> output.</td>
</tr>
<tr>
<td><strong>j9vm</strong></td>
<td><code>checkvm</code></td>
<td>A set of tracepoints that record VM checks. Equivalent to <code>-Xcheck:vm</code> output.</td>
</tr>
<tr>
<td><strong>j9jit</strong></td>
<td><code>verbose</code></td>
<td>A set of tracepoints that record JIT compiler configuration and method compilation. Equivalent to <code>-Xjit:verbose</code> output.</td>
</tr>
<tr>
<td><strong>mt</strong></td>
<td><code>compiledMethods</code></td>
<td>A set of tracepoints that record compiled Java methods.</td>
</tr>
<tr>
<td><strong>mt</strong></td>
<td><code>nativeMethods</code></td>
<td>A set of tracepoints that record Java native methods.</td>
</tr>
<tr>
<td><strong>mt</strong></td>
<td><code>staticMethods</code></td>
<td>A set of tracepoints that record Java static methods.</td>
</tr>
</tbody>
</table>
<p>Here are some examples:</p>
<p>To trace all tracepoints, specify the following command:</p>
<pre><code>-Xtrace:maximal=all
</code></pre>
<pre><code>To trace all tracepoints except **j9vrb** and **j9trc**, specify the following command:
-Xtrace:minimal={all},minimal={!j9vrb,j9trc}
</code></pre>
<p>To trace all entry and exit tracepoints in <strong>j9bcu</strong>, specify the following command:</p>
<pre><code>-Xtrace:maximal={j9bcu{entry},j9bcu{exit}}
</code></pre>
<pre><code>To trace all tracepoints in **j9mm** except tracepoints 20-30, specify the following command:
-Xtrace:maximal=j9mm,maximal=!j9mm.20-30
</code></pre>
<p>To trace tracepoints <code>j9prt.5</code> through <code>j9prt.15</code>, specify the following command:</p>
<pre><code>-Xtrace:print=j9prt.5-15
</code></pre>
<pre><code>To trace all **j9trc** tracepoints, specify the following command:
-Xtrace:count=j9trc
</code></pre>
<p>To trace all <code>entry</code> and <code>exit</code> tracepoints, specify the following command:</p>
<pre><code>-Xtrace:external={all{entry},all{exit}}
</code></pre>
<h3 id="trace-levels">Trace levels</h3>
<p>Tracepoints have been assigned levels 0 through 9 that are based on the importance of the tracepoint.</p>
<p>A level 0 tracepoint is the most important. It is reserved for extraordinary events and errors. A level 9 tracepoint is in-depth component detail. To specify a given level of tracing, the <code>level0</code> through <code>level9</code> keywords are used. You can abbreviate these keywords to l0 through l9. For example, if <code>level5</code> is selected, all tracepoints that have levels 0 through 5 are included. Level specifications do not apply to explicit tracepoint specifications that use the <strong>TPNID</strong> keyword.</p>
<p>The level is provided as a modifier to a component specification, for example:</p>
<pre><code>-Xtrace:maximal={all{level5}}
</code></pre>
<p>or</p>
<pre><code>-Xtrace:maximal={j9mm{L2},j9trc,j9bcu{level9},all{level1}}
</code></pre>
<p>In the first example, tracepoints that have a level of 5 or less are enabled for all components. In the second example, all level 1 tracepoints are enabled. All level 2 tracepoints in <strong>j9mm</strong> are enabled. All tracepoints up to level 9 are enabled in <strong>j9bcu</strong>.</p>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> The level applies only to the current component. If multiple trace selection components are found in a trace properties file, the level is reset to the default for each new component.
Level specifications do not apply to explicit tracepoint specifications that use the <strong>TPNID</strong> keyword.</p>
<p>When the not operator is specified, the level is inverted; that is, <code>!j9mm{level5}</code> disables all tracepoints of level 6 or greater for the <strong>j9mm</strong> component. The following example enables trace for all components at level 9 (the default), but disables level 6 and higher for the <strong>locking</strong> component, and level 7 and higher for the <strong>storage</strong> component:</p>
<pre><code>-Xtrace:print={all},print={!j9trc{l5},j9mm{l6}}
</code></pre>
<p>Here are some examples:</p>
<p>To count the level zero and level one tracepoints matched, specify the following command:</p>
<pre><code>-Xtrace:count=all{L1}
</code></pre>
<p>To produce maximal trace of all components at level 5 and <strong>j9mm</strong> at level 9, specify the following command:</p>
<pre><code>-Xtrace:maximal={all{level5},j9mm{L9}}
</code></pre>
<p>To trace all components at level 6, but do not trace <code>j9vrb</code> at all, and do not trace the <code>entry</code> and <code>exit</code> tracepoints in the <strong>j9trc</strong> component, specify the following command:</p>
<pre><code>-Xtrace:minimal={all{l6}},minimal={!j9vrb,j9trc{entry},j9trc{exit}}
</code></pre>
<h2 id="parameters">Parameters</h2>
<p>Parameters to use with the <code>-Xtrace</code> option:</p>
<h3 id="buffers"><code>buffers</code></h3>
<p>You can modify the size of the buffers to change how much diagnostic output is provided in a snap dump. This buffer is allocated for each thread that makes trace entries. The following table shows
how this parameter can be set:</p>
<table>
<thead>
<tr>
<th>Command</th>
<th>Effect</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>-Xtrace:buffers=&lt;size&gt;</code></td>
<td>Creates buffers of the specified <code>&lt;size&gt;</code> in <em>k</em> (KB) or <em>m</em> (MB), allocated as needed to match the rate of trace data generation to the output media.</td>
</tr>
<tr>
<td><code>-Xtrace:buffers=&lt;size&gt;dynamic</code></td>
<td>Creates buffers of the specified <code>&lt;size&gt;</code>, allocated as needed to match the rate of trace data generation to the output media.</td>
</tr>
<tr>
<td><code>-Xtrace:buffers=&lt;size&gt;nodynamic</code></td>
<td>Creates buffers of the specified <code>&lt;size&gt;</code>, with a maximum allocation of two buffers per thread.</td>
</tr>
</tbody>
</table>
<p>If external trace is enabled, the number of buffers is doubled; that is, each thread allocates two or more buffers. The same buffer size is used for state and exception tracing, but, in this case, buffers are allocated globally. The default is 8 KB per thread.</p>
<p>The <code>dynamic</code> and <code>nodynamic</code> suboptions have meaning only when tracing to an output file.</p>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> If <code>nodynamic</code> is specified, you might lose trace data if the volume of trace data exceeds the bandwidth of the trace output file. Message <strong>UTE115</strong> is issued when the first trace entry is lost, and message <strong>UTE018</strong> is issued when the VM ends.</p>
<p>Here are some command line examples:</p>
<p>To set a buffer size of 2 MB per thread, with dynamic buffering, use:</p>
<pre><code>-Xtrace:buffers=2m
</code></pre>
<p>To limit each thread to 2 trace buffers, each of 128 KB:</p>
<pre><code>-Xtrace:buffers={128k,nodynamic}
</code></pre>
<h3 id="count-tracepoint"><code>count</code> (tracepoint)</h3>
<pre><code>-Xtrace:count=&lt;tracepoint_specification&gt;
</code></pre>
<p>For further information about <code>&lt;tracepoint_specification&gt;</code> syntax, see <a href="#tracepoint-specification">Tracepoint specification</a>.</p>
<p>The count option requests that only a count of the selected tracepoints is kept. When the VM ends, all nonzero totals of tracepoints (sorted by tracepoint id) are written to a file, called <code>utTrcCounters</code>, in the current directory. This information is useful if you want to determine the overhead of particular tracepoints, but do not want to produce a large amount (GB) of trace data.</p>
<p>For example, to count the tracepoints that are used in the default trace configuration, use the following command:</p>
<pre><code>-Xtrace:count=all{level1},count=j9mm{gclogger}
</code></pre>
<h3 id="exception-tracepoint"><code>exception</code> (tracepoint)</h3>
<pre><code>-Xtrace:exception=&lt;tracepoint_specification&gt;
</code></pre>
<p>For further information about <code>&lt;tracepoint_specification&gt;</code> syntax, see <a href="#tracepoint-specification">Tracepoint specification</a>.</p>
<p>When exception trace is enabled, the trace data is collected in internal buffers that are separate from the normal buffers. These internal buffers can then be written to a snap file or written to the file that is specified in an <a href="#exceptionoutput"><code>exception.output</code></a> option.</p>
<p>The <code>exception</code> option allows low-volume tracing in buffers and files that are distinct from the higher-volume information that <code>minimal</code> and <code>maximal</code> tracing have provided. In most cases, this information is exception-type data, but you can use this option to capture any trace data that you want.</p>
<p>This form of tracing is channeled through a single set of buffers, as opposed to the buffer-per-thread approach for normal trace. Buffer contention might occur if high volumes of trace data are collected. A difference exists in the <code>&lt;tracepoint_specification&gt;</code> defaults for exception tracing; see <a href="#tracepoint-specification">Tracepoint specification</a>.</p>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Notes:</strong></p>
<ul>
<li>The exception trace buffers are intended for low-volume tracing. By default, the exception trace buffers log garbage collection (GC) event tracepoints, see Default tracing. You can send additional tracepoints to the exception buffers or turn off the GC tracepoints. Changing the exception trace buffers alters the contents of the GC History section in any Javadumps.</li>
<li>When exception trace is entered for an active tracepoint, the current thread ID is checked against the previous caller's thread ID. If it is a different thread, or this is the first call to exception trace, a context tracepoint is put into the trace buffer first. This context tracepoint consists only of the current thread ID, which is necessary because of the single set of buffers for exception trace. (The formatter identifies all trace entries as coming from the Exception trace pseudo thread when it formats exception trace files.)</li>
</ul>
<h3 id="exceptionoutput"><code>exception.output</code></h3>
<p>Use exception output to redirect exceptions trace data to a file.</p>
<pre><code>-Xtrace:exception.output=&lt;filename&gt;[,&lt;size&gt;]
</code></pre>
<p>Where:</p>
<ul>
<li><code>&lt;filename&gt;</code> is a file name, which is created automatically if it does not exist. Otherwise, it is overwritten. To embed specific values in the file name use any of the following variables: <em>%d</em> (today's date in "
yyyymmdd" format), <em>%p</em> (process ID number of the process generating the trace), or <em>%t</em> (time in 24-hour hhmmss format).</li>
<li>Optionally, <code>&lt;size&gt;</code> is a value in megabytes (MB), for example, use <em>4m</em> to specify 4 MB. When full, it wraps nondestructively to the beginning. If you do not limit the file, it grows indefinitely, until limited by disk space.</li>
</ul>
<p>Here are some examples:</p>
<p>Exception trace output goes to file <code>/u/traces/exception.trc</code> with no size limit:</p>
<pre><code>-Xtrace:exception.output=/u/traces/exception.trc,maximal
</code></pre>
<p>Exception trace output goes to file <code>except</code> and wraps at 2 MB:</p>
<pre><code>-Xtrace:exception.output={except,2m},maximal
</code></pre>
<p>Exception trace output goes to a file whose filename contains today's date in *
yyyymmdd* format (for example, <code>traceout.20181025.trc</code>):</p>
<pre><code>-Xtrace:exception.output=traceout.%d.trc,maximal
</code></pre>
<p>Exception trace output goes to a file whose filename contains the number of the process (the PID number) that generated it (for example, <code>tracefrompid2112.trc</code>):</p>
<pre><code>-Xtrace:exception.output=tracefrompid%p.trc,maximal
</code></pre>
<p>Exception trace output goes to a file whose filename contains the time in <em>hhmmss</em> format (for example, <code>traceout.080312.trc</code>):</p>
<pre><code>-Xtrace:exception.output=traceout.%t.trc,maximal
</code></pre>
<h3 id="external-tracepoint"><code>external</code> (tracepoint)</h3>
<pre><code>-Xtrace:external&lt;tracepoint_specification&gt;
</code></pre>
<p>For further information about <code>&lt;tracepoint_specification&gt;</code> syntax, see <a href="#tracepoint-specification">Tracepoint specification</a>.</p>
<p>The <code>external</code> option routes trace data to trace listeners, which are registered by using the JVMTI <code>RegisterTracePointSubscriber()</code> and <code>DeregisterTracePointSubscriber()</code> APIs.</p>
<h3 id="help"><code>help</code></h3>
<pre><code>-Xtrace:help
</code></pre>
<p>Displays general trace help</p>
<h3 id="iprint-tracepoint"><code>iprint</code> (tracepoint)</h3>
<pre><code>-Xtrace:iprint=&lt;tracepoint_specification&gt;
</code></pre>
<p>For further information about <code>&lt;tracepoint_specification&gt;</code> syntax, see <a href="#tracepoint-specification">Tracepoint specification</a>.</p>
<p>The <code>iprint</code> option is the same as the <code>print</code> option, but uses indenting to format the trace.</p>
<h3 id="maximal-tracepoint"><code>maximal</code> (tracepoint)</h3>
<pre><code>-Xtrace:maximal=&lt;tracepoint_specification&gt;
</code></pre>
<p>For further information about <code>&lt;tracepoint_specification&gt;</code> syntax, see <a href="#tracepoint-specification">Tracepoint specification</a>.</p>
<p>When specified, trace data is placed into internal trace buffers that can then be written to a snap file or written to the files that are specified in an output trace option. All associated data is traced.</p>
<p><code>minimal</code> and <code>maximal</code> traces are independent from any types that follow them. For example, if the <code>maximal</code> option is specified, it does not affect a later option such as <code>print</code>.</p>
<h3 id="methods"><code>methods</code></h3>
<p>Using method trace provides a complete and potentially large diagnosis of code paths inside your application and the system classes. Use wild cards and filtering to control method trace so that you can focus on the sections of code that interest you. Note that method trace is powerful but it also has a cost. Application throughput is affected by method trace.</p>
<p>To specify one or more method specifications, use the following syntax:</p>
<pre><code>-Xtrace:methods=&lt;method_specification&gt;[,&lt;method_specification&gt;]
</code></pre>
<p>The syntax for <code>&lt;method_specification&gt;</code> can be further broken down to the following suboptions:</p>
<pre><code>-Xtrace:methods={[!][*][&lt;package&gt;/]&lt;class&gt;[*],[[*]&lt;method&gt;[*]|[()]]}
</code></pre>
<p>Where:</p>
<ul>
<li>The delimiter between parts of the package name is a forward slash, "/".</li>
<li>The <strong>!</strong> in the methods parameter is a NOT operator that allows you to tell the VM not to trace the specified method or methods.</li>
<li>The parentheses, (), define whether or not to include method parameters in the trace.</li>
<li>If a method specification includes any commas, the whole specification must be enclosed in braces, for example: <code>-Xtrace:methods={java/lang/*,java/util/*},print=mt</code></li>
<li>It might be necessary to enclose your command line in quotation marks to prevent the shell intercepting and fragmenting comma-separated command lines, for example: <code>"-Xtrace:methods={java/lang/*,java/util/*},print=mt"</code></li>
</ul>
<p>To output all method trace information to stderr, use either the <code>print</code> or <code>iprint</code> suboptions:</p>
<pre><code>-Xtrace:print=mt,methods=*.*
-Xtrace:iprint=mt,methods=*.*
</code></pre>
<p>The <code>iprint</code> suboption prints to stderr with indentation.
To output method trace information in binary format, see the <a href="#output"><code>output</code></a> option</p>
<p>Internal Native Library (INL) native methods inside the VM cannot be traced because they are not implemented by using JNI. The list of methods that are not traceable is subject to change without notice.</p>
<p>Here are some examples:</p>
<p><em>Tracing entry and exit of all methods in a given class:</em> To trace all method entry and exit of the <code>ReaderMain</code> class in the default package and the <code>java.lang.String</code> class, specify the following command:</p>
<pre><code>-Xtrace:methods={ReaderMain.*,java/lang/String.*},print=mt
</code></pre>
<p><em>Tracing entry, exit and input parameters of all methods in a class:</em> To trace all method entry, exit, and input of the <code>ReaderMain</code> class in the default package, specify the following command:</p>
<pre><code>-Xtrace:methods=ReaderMain.*(),print=mt
</code></pre>
<p><em>Tracing all methods in a given package:</em> To trace all method entry, exit, and input of all classes in the package <code>com.ibm.socket</code>, specify the following command:</p>
<pre><code>-Xtrace:methods=com/ibm/socket/*.*(),print=mt
</code></pre>
<p><em>Multiple method trace:</em> To trace all method entry, exit, and input in the <code>Widget</code> class in the default package and all method entry and exit in the <code>common</code> package, specify the following command:</p>
<pre><code>-Xtrace:methods={Widget.*(),common/*},print=mt
</code></pre>
<p><em>Using the ! operator:</em> To trace all methods in the <code>ArticleUI</code> class in the default package except those beginning with "get", specify the following command:</p>
<pre><code>-Xtrace:methods={ArticleUI.*,!ArticleUI.get*},print=mt
</code></pre>
<p><em>Tracing a specific method in a class:</em> This example traces entry and exit of the substring method of the <code>java.lang.String class</code>. If there is more than one method with the same name, they are all traced. You cannot filter method trace by the signature of the method.</p>
<pre><code>-Xtrace:print=mt,methods={java/lang/String.substring}
</code></pre>
<p><em>Tracing the constructor of a class:</em> This example traces entry and exit of the constructors of the <code>java.lang.String</code> class.</p>
<pre><code>-Xtrace:print=mt,methods={java/lang/String.&lt;init&gt;}
</code></pre>
<p>Here is some example output:</p>
<pre><code>java "-Xtrace:methods={java/lang*.*},iprint=mt" HW
10:02:42.281*0x9e900 mt.4 &gt; java/lang/J9VMInternals.initialize(Ljava/lang/Class;)
V Compiled static method
10:02:42.281 0x9e900 mt.4 &gt; java/lang/J9VMInternals.verify(Ljava/lang/Class;)
V Compiled static method
10:02:42.281 0x9e900 mt.4 &gt; java/lang/J9VMInternals.verify(Ljava/lang/Class;)
V Compiled static method
10:02:42.281 0x9e900 mt.4 &gt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.281 0x9e900 mt.10 &lt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.281 0x9e900 mt.10 &lt; java/lang/J9VMInternals.verify(Ljava/lang/Class;)
V Compiled static method
10:02:42.281 0x9e900 mt.4 &gt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.281 0x9e900 mt.10 &lt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.281 0x9e900 mt.10 &lt; java/lang/J9VMInternals.verify(Ljava/lang/Class;)
V Compiled static method
10:02:42.281 0x9e900 mt.4 &gt; java/lang/J9VMInternals.initialize(Ljava/lang/Class;)
V Compiled static method
10:02:42.281 0x9e900 mt.4 &gt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.296 0x9e900 mt.10 &lt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.296 0x9e900 mt.10 &lt; java/lang/J9VMInternals.initialize(Ljava/lang/Class;)
V Compiled static method
10:02:42.296 0x9e900 mt.4 &gt; java/lang/String.&lt;clinit&gt;()V Compiled static method
10:02:42.296 0x9e900 mt.4 &gt; java/lang/J9VMInternals.initialize(Ljava/lang/Class;)
V Compiled static method
10:02:42.296 0x9e900 mt.4 &gt; java/lang/J9VMInternals.verify(Ljava/lang/Class;)
V Compiled static method
10:02:42.296 0x9e900 mt.4 &gt; java/lang/J9VMInternals.verify(Ljava/lang/Class;)
V Compiled static method
10:02:42.296 0x9e900 mt.10 &lt; java/lang/J9VMInternals.verify(Ljava/lang/Class;)
V Compiled static method
10:02:42.296 0x9e900 mt.4 &gt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.328 0x9e900 mt.10 &lt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.328 0x9e900 mt.10 &lt; java/lang/J9VMInternals.verify(Ljava/lang/Class;)
V Compiled static method
10:02:42.328 0x9e900 mt.4 &gt; java/lang/J9VMInternals.initialize(Ljava/lang/Class;)
V Compiled static method
10:02:42.328 0x9e900 mt.10 &lt; java/lang/J9VMInternals.initialize(Ljava/lang/Class;)
V Compiled static method
10:02:42.328 0x9e900 mt.4 &gt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.328 0x9e900 mt.10 &lt; java/lang/J9VMInternals.setInitStatus(Ljava/lang/Class;I)
V Compiled static method
10:02:42.328 0x9e900 mt.10 &lt; java/lang/J9VMInternals.initialize(Ljava/lang/Class;)
V Compiled static method
</code></pre>
<p>The output lines comprise of:</p>
<ul>
<li><code>0x9e900</code>, the current <code>execenv</code> (execution environment). Because every VM thread has its own <code>execenv</code>, you can regard <code>execenv</code> as a <code>thread-id</code>. All trace with the same <code>execenv</code> relates to a single thread.</li>
<li>The individual tracepoint ID in the <strong>mt</strong> component that collects and emits the data.</li>
<li>The remaining fields show whether a method is being entered (&gt;) or exited (&lt;), followed by details of the method.</li>
</ul>
<h3 id="minimal-tracepoint"><code>minimal</code> (tracepoint)</h3>
<pre><code>-Xtrace:minimal=&lt;tracepoint_specification&gt;
</code></pre>
<p>For further information about <code>&lt;tracepoint_specification&gt;</code> syntax, see <a href="#tracepoint-specification">Tracepoint specification</a>.</p>
<p>When specified, trace data is placed into internal trace buffers that can then be written to a snap file or written to the files that are specified in an output trace option. Only the time stamp and tracepoint identifier are recorded. When the trace is formatted, missing trace data is replaced with the characters "???" in the output file.</p>
<p><code>minimal</code> and <code>maximal</code> traces are independent from any types that follow them. For example, if the <code>minimal</code> option is specified, it does not affect a later option such as <code>print</code>.</p>
<h3 id="none-tracepoint"><code>none</code> (tracepoint)</h3>
<pre><code>-Xtrace:none[=&lt;tracepoint_specification&gt;]
</code></pre>
<p>For further information about <code>&lt;tracepoint_specification&gt;</code> syntax, see <a href="#tracepoint-specification">Tracepoint specification</a>.</p>
<p><code>-Xtrace:none</code> prevents the trace engine from loading if it is the only trace option specified. However, if other <code>-Xtrace</code> options are on the command line, it is treated as the equivalent of <code>-Xtrace:none=all</code> and the trace engine still loads.</p>
<p>If you specify other tracepoints without specifying <code>-Xtrace:none</code>, the tracepoints are added to the default set.</p>
<h3 id="output"><code>output</code></h3>
<p>Sends trace data to a file, optionally of a specific size and number of generations.</p>
<pre><code>-Xtrace:output=&lt;filename&gt;[,&lt;size&gt;[,&lt;generations&gt;]]`
</code></pre>
<p>Where:</p>
<ul>
<li><code>&lt;filename&gt;</code> is a file name, which is created automatically if it does not exist. Otherwise, it is overwritten. To embed specific values in the file name use any of the following variables: <em>%d%</em> (today's date in "
yyyymmdd" format), <em>%p%</em> (process ID number of the process generating the trace), or <em>%t%</em> (time in 24-hour hhmmss format).</li>
<li>Optionally, <code>&lt;size&gt;</code> is a value in megabytes (MB), for example, use <em>4m</em> to specify 4 MB. When full, it wraps to the beginning. If you do not limit the file, it grows indefinitely, until limited by disk space.</li>
<li>Optionally, <code>&lt;generations&gt;</code> is a value 2 through 36. These values cause up to 36 files to be used sequentially as each file reaches its <code>&lt;size&gt;</code> threshold. When a file needs to be reused, it is overwritten. If <code>&lt;generations&gt;</code> is specified, the filename must contain a <strong>#</strong> (hash, pound symbol), which will be substituted with its generation identifier, the sequence of which is 0 through 9 followed by A through Z.</li>
</ul>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> When tracing to a file, buffers for each thread are written when the buffer is full or when the VM ends. If a thread has been inactive for a period of time before the VM ends, what seems to be 'old' trace data is written to the file. When formatted, it then seems that trace data is missing from the other threads, but this is an unavoidable side-effect of the buffer-per-thread design. This effect becomes especially noticeable when you use the generation facility, and format individual earlier generations.</p>
<p>Here are some examples:</p>
<p>Trace output goes to file <code>/u/traces/gc.problem</code> with no size limit:</p>
<pre><code>-Xtrace:output=/u/traces/gc.problem,maximal=j9gc
</code></pre>
<p>Trace output goes to file <code>trace</code>, which will wrap at 2 MB:</p>
<pre><code>-Xtrace:output={trace,2m},maximal=j9gc
</code></pre>
<p>Trace output goes to files <code>gc0.trc</code>, <code>gc1.trc</code>, and <code>gc2.trc</code>, each 10 MB in size:</p>
<pre><code>-Xtrace:output={gc#.trc,10m,3},maximal=j9gc
</code></pre>
<p>Trace output goes to a file, where the filename contains today's date in *
yyyymmdd* format (for example, <code>traceout.20181025.trc</code>):</p>
<pre><code>-Xtrace:output=traceout.%d.trc,maximal=j9gc
</code></pre>
<p>Trace output goes to a file whose name contains the number of the process (the PID number) that generated it (for example, <code>tracefrompid2112.trc</code>):</p>
<pre><code>-Xtrace:output=tracefrompid%p.trc,maximal=j9gc
</code></pre>
<p>Trace output goes to a file whose name contains the time in <em>hhmmss</em> format (for example, <code>traceout.080312.trc</code>):</p>
<pre><code>-Xtrace:output=traceout.%t.trc,maximal=j9gc
</code></pre>
<h3 id="print-tracepoint"><code>print</code> (tracepoint)</h3>
<pre><code>-Xtrace:print=&lt;tracepoint_specification&gt;
</code></pre>
<p>For further information about <code>&lt;tracepoint_specification&gt;</code> syntax, see <a href="#tracepoint-specification">Tracepoint specification</a>.</p>
<p>The print option causes the specified tracepoints to be routed to stderr in real time. The VM tracepoints are formatted by using <code>J9TraceFormat.dat</code>. The class library tracepoints are formatted by <code>J9TraceFormat.dat</code> and <code>TraceFormat.dat</code>.</p>
<h3 id="properties"><code>properties</code></h3>
<p>You can use properties files to control trace. A properties file saves typing and allows you to create a library of files that are tailored to solving problems in a particular area.</p>
<pre><code>-Xtrace:properties[=&lt;filename&gt;]
</code></pre>
<p>If <code>&lt;filename&gt;</code> is not specified, the VM searches for a default name of <strong>IBMTRACE.properties</strong> in the current directory.</p>
<p>All the options that are in the file are processed in the sequence in which they are stored in the file, before the next option that is obtained through the normal mechanism is processed. Therefore, a command-line property always overrides a property that is in the file.</p>
<p>Here is an example of a properties file:</p>
<pre><code>minimal=all
// maximal=j9mm
maximal=j9shr
buffers=128k,nodynamic
output=c:\traces\classloader.trc
print=tpnid(j9vm.23-25)
</code></pre>
<p>The following restrictions apply to the file:</p>
<ul>
<li>The file must be a flat ASCII file.</li>
<li>Nesting is not supported; that is, the file cannot contain a properties option.</li>
<li>You cannot leave properties that have the form <code>&lt;name&gt;=&lt;value&gt;</code> to default if they are specified in the property file; that is, you must specify a value, for example <code>maximal=all</code>.</li>
<li>Do not add white space before, after, or within the trace options.</li>
</ul>
<p>If any error is found when the file is accessed, VM initialization fails with an explanatory error message and return code.</p>
<p>To use a file <code>trace.props</code> stored in the <code>c:\trc\gc</code> directory, specify the following command:</p>
<pre><code>-Xtrace:properties=c:\trc\gc\trace.props
</code></pre>
<h3 id="resume"><code>resume</code></h3>
<p>The resume option resumes tracing globally.</p>
<pre><code>-Xtrace:resume
</code></pre>
<p>The <code>suspend</code> and <code>resume</code> options are not recursive. That is, two suspends that are followed by a single resume cause trace to be resumed.</p>
<h3 id="resumecount"><code>resumecount</code></h3>
<p>This trace option determines whether tracing is enabled for each thread.</p>
<pre><code>-Xtrace:resumecount=&lt;count&gt;
</code></pre>
<p>If <code>&lt;count&gt;</code> is greater than zero, each thread initially has its tracing disabled and must receive <code>&lt;count&gt;</code> <code>resumethis</code> actions before it starts tracing. This option is used with the <a href="#trigger">trigger</a> option.</p>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> You cannot use <code>resumecount</code> and <code>suspendcount</code> together because they use the same internal counter.</p>
<p>The following example starts with all tracing turned off. Each thread starts tracing when it has had three <code>resumethis</code> actions performed on it:</p>
<pre><code>-Xtrace:resumecount=3
</code></pre>
<h3 id="sleeptime"><code>sleeptime</code></h3>
<p>You can specify how long the sleep lasts when using the <code>sleep</code> trigger action.</p>
<pre><code>-Xtrace:sleeptime=nnn|aaams|bbbs
</code></pre>
<p>Where:</p>
<ul>
<li><em>nnn</em> sleeps for <em>nnn</em> milliseconds.</li>
<li><em>aaams</em> sleeps for <em>aaa</em> milliseconds.</li>
<li><em>bbbs</em> sleeps for <em>bbb</em> seconds.</li>
</ul>
<p>The default length of time is 30 seconds. If no units are specified, the default time unit is milliseconds.</p>
<h3 id="stackdepth"><code>stackdepth</code></h3>
<p>Use this option to limit the maximum number of stack frames reported by the <code>jstacktrace</code> trace trigger action.</p>
<pre><code>-Xtrace:stackdepth=&lt;n&gt;
</code></pre>
<p>Where <code>&lt;n&gt;</code> is the maximum number of stack frames reported.</p>
<h3 id="suspend"><code>suspend</code></h3>
<pre><code>-Xtrace:suspend
</code></pre>
<p>Suspends tracing globally for all threads and all forms of tracing but leaves tracepoints activated.</p>
<h3 id="suspendcount"><code>suspendcount</code></h3>
<p>This trace option determines whether tracing is enabled for each thread.</p>
<pre><code>-Xtrace:suspendcount=&lt;count&gt;
</code></pre>
<p>If <code>&lt;count&gt;</code> is greater than zero, each thread initially has its tracing enabled and must receive <code>&lt;count&gt;</code> <code>suspendthis</code> actions before it stops tracing.</p>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> You cannot use <code>resumecount</code> and <code>suspendcount</code> together because they both set the same internal counter.</p>
<p>This trace option is for use with the <a href="#trigger">trigger</a> option.</p>
<p>The following example starts with tracing turned on. Each thread stops tracing when it has had three <code>suspendthis</code> actions performed on it:</p>
<pre><code>-Xtrace:suspendcount=3
</code></pre>
<h3 id="trigger"><code>trigger</code></h3>
<p>The <code>trigger</code> parameter determines when various triggered trace actions occur. Supported actions include turning tracing on and off for all threads, turning tracing on or off for the current thread, or producing various dumps.</p>
<pre><code>-Xtrace:trigger=&lt;clause&gt;[,&lt;clause&gt;]
</code></pre>
<p>This trace option does not control <em>what</em> is traced. It controls only whether the information that has been selected by the other trace options is produced as normal or is blocked.</p>
<h4 id="types">Types</h4>
<p>Each clause of the <code>trigger</code> parameter can be one of the following types:</p>
<ul>
<li>a method (<code>-Xtrace:trigger=method{...}</code>)</li>
<li>a tracepoint ID (<code>-Xtrace:trigger=tpnid{...}</code>)</li>
<li>a group (<code>-Xtrace:trigger=group{...}</code>)</li>
</ul>
<p>You can specify multiple clauses of the same type if required, but you do not need to specify all types.</p>
<dl>
<dt><em>method</em></dt>
<dd>
<pre><code> -Xtrace:trigger=method{&lt;methodspec&gt;[,&lt;entryAction&gt;[,&lt;exitAction&gt;[,&lt;delayCount&gt;[,&lt;matchcount&gt;]]]]}
</code></pre>
<p>On entering a method that matches <code>&lt;methodspec&gt;</code>, the specified <code>&lt;entryAction&gt;</code> is run. On leaving a method that matches <code>&lt;methodspec&gt;</code>, the specified <code>&lt;exitAction&gt;</code> is run. If you specify a <code>&lt;delayCount&gt;</code>, the actions are performed only after a matching <code>&lt;methodspec&gt;</code> has been entered that many times. If you specify a <code>&lt;matchCount&gt;</code>, <code>&lt;entryAction&gt;</code> and <code>&lt;exitAction&gt;</code> are performed at most that many times.</p>
<p><code>&lt;methodspec&gt;</code> is the specification of a Java method, consisting of a class and a method name separated by a dot. For example, specify <code>HelloWorld.main</code>. If the class is in a package, the package name must be included, separated by slashes. For example, specify <code>java/lang/String.getBytes</code>.</p>
<p>A wildcard "*" can be used at the start or end of the class and method names, or both. For example, you can specify <code>*/String.get*</code>. To specify a constructor method, use <code>&lt;init&gt;</code> as the method name. Method signatures cannot be specified, so a method specification applies to all overloaded methods.</p>
</dd>
<dt><em>tracepoint ID</em></dt>
<dd>
<pre><code> -Xtrace:trigger=tpnid{&lt;tpnid&gt;|&lt;tpnidRange&gt;,&lt;action&gt;[,&lt;delayCount&gt;[,&lt;matchcount&gt;]]}
</code></pre>
<p>On finding the specified active tracepoint ID (<code>&lt;tpnid&gt;</code>) or a tracepoint ID) that falls inside the specified <code>&lt;tpnidRange&gt;</code>, the specified action is <strong>run</strong>. If you specify a <code>&lt;delayCount&gt;</code>, the action is performed only after the VM finds such an active <code>&lt;tpnid&gt;</code> that many times. If you specify a <code>&lt;matchCount&gt;</code>, <code>&lt;action&gt;</code> is performed at most that many times.</p>
</dd>
<dt><em>group</em></dt>
<dd>
<pre><code> -Xtrace:trigger=group{&lt;groupname&gt;,&lt;action&gt;[,&lt;delayCount&gt;[,&lt;matchcount&gt;]]}
</code></pre>
<p>On finding any active tracepoint that is defined as being in trace group <code>&lt;groupname&gt;</code>, for example <strong>Entry</strong> or <strong>Exit</strong>, the specified action is <strong>run</strong>. If you specify a <code>&lt;delayCount&gt;</code>, the action is performed only after that many active tracepoints from group <code>&lt;groupname&gt;</code> have been found. If you specify a <code>&lt;matchCount&gt;</code>, <code>&lt;action&gt;</code> is performed at most that many times.</p>
</dd>
</dl>
<h4 id="actions">Actions</h4>
<p>Wherever an action (<code>&lt;action&gt;</code>, <code>&lt;entryAction&gt;</code>, or <code>&lt;exitAction&gt;</code>) must be specified in one of the <code>trigger</code> parameter clauses, you must select from these options:</p>
<table>
<thead>
<tr>
<th><strong><code>&lt;action&gt;</code></strong></th>
<th>Effect</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>abort</code></td>
<td>Halt the VM.</td>
</tr>
<tr>
<td><code>ceedump</code></td>
<td>This action is applicable to z/OS&reg; only. For more information, see <a href="../xdump/#dump-agents">z/OS LE CEEDUMPs</a>.</td>
</tr>
<tr>
<td><code>coredump</code></td>
<td>Produce a system dump. See <a href="../xdump/#dump-agents">Dump agents (<code>-Xdump:system</code>)</a></td>
</tr>
<tr>
<td><code>heapdump</code></td>
<td>Produce a heap dump. See <a href="../dump_heapdump/">Heap dump</a>.</td>
</tr>
<tr>
<td><code>javadump</code></td>
<td>Produce a Java dump. See <a href="../dump_javadump/">Java dump</a>.</td>
</tr>
<tr>
<td><code>jstacktrace</code></td>
<td>Examine the Java stack of the current thread and generate auxiliary tracepoints for each stack frame. The auxiliary tracepoints are written to the same destination as the tracepoint or method trace that triggered the action. You can control the number of stack frames examined with the <code>stackdepth=n</code> option. See the <a href="#stackdepth">stackdepth</a> option.</td>
</tr>
<tr>
<td><code>resume</code></td>
<td>Resume all tracing (except for threads that are suspended by the action of the resumecount property and <code>Trace.suspendThis()</code> calls).</td>
</tr>
<tr>
<td><code>resumethis</code></td>
<td>Decrement the suspend count for this thread. If the suspend count is zero or less, resume tracing for this thread.</td>
</tr>
<tr>
<td><code>segv</code></td>
<td>Cause a segmentation violation. (Intended for use in debugging.)</td>
</tr>
<tr>
<td><code>sleep</code></td>
<td>Delay the current thread for a length of time controlled by the sleeptime option. The default is 30 seconds. See sleeptime option.</td>
</tr>
<tr>
<td><code>snap</code></td>
<td>Snap all active trace buffers to a file in the current working directory. The file name has the format: <code>Snapnnnn.yyyymmdd.hhmmssth.ppppp.trc</code>, where <em>nnnn</em> is the sequence number of the snap file since VM startup, <em>yyyymmdd</em> is the date, <em>hhmmssth</em> is the time, and <em>ppppp</em> is the process ID in decimal with leading zeros removed.</td>
</tr>
<tr>
<td><code>suspend</code></td>
<td>Suspend all tracing (except for special trace points).</td>
</tr>
<tr>
<td><code>suspendthis</code></td>
<td>Increment the suspend count for this thread. If the suspend-count is greater than zero, prevent all tracing for this thread.</td>
</tr>
<tr>
<td><code>sysdump</code> (or <code>coredump</code>)</td>
<td>Produce a system dump. See <a href="../xdump/#dump-agents">Dump agents(<code>-Xdump:system</code>)</a>.</td>
</tr>
</tbody>
</table>
<p>Here are some examples of using the <code>trigger</code> option:</p>
<p>To produce a Java dump when a method is entered, specify the following command:</p>
<pre><code>-Xtrace:trigger=method{java/lang/String.getBytes,javadump}
</code></pre>
<p>To produce a system dump when a method is entered, specify the following command:</p>
<pre><code>-Xtrace:trigger=method{java/lang/String.getBytes,sysdump}
</code></pre>
<p>To produce a Java dump when a class constructor is called, specify the following command:</p>
<pre><code>&quot;-Xtrace:trigger=method{java/lang/Thread.&lt;init&gt;,javadump}&quot;
</code></pre>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> This trace option is enclosed in quotation marks to avoid unwanted shell expansion of some of the characters.</p>
<p>To produce a Java dump when a class static initializer is called, specify the following command:</p>
<pre><code>&quot;-Xtrace:trigger=method{java/lang/Thread.&lt;clinit&gt;,javadump}&quot;
</code></pre>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> This trace option is enclosed in quotation marks to avoid unwanted shell expansion of some of the characters.</p>
<p>To produce a Java dump when a method is entered 1000 times and 1001 times, specify the following command:</p>
<pre><code>-Xtrace:trigger=method{java/lang/String.getBytes,javadump,,1000,2}
</code></pre>
<p>To start tracing this thread when it enters any method in <code>java/lang/String</code>, and to stop tracing the thread after exiting the method, specify the following command:</p>
<pre><code>-Xtrace:resumecount=1
</code></pre>
<p>-Xtrace:trigger=method{java/lang/String.*,resumethis,suspendthis}</p>
<p>To resume all tracing when any thread enters a method in any class that starts with <em>error</em>, specify the following command:</p>
<pre><code>-Xtrace:trigger=method{*.error*,resume}
</code></pre>
<p>To trace (all threads) while the application is active; that is, not starting or shut down. (The application name is <code>HelloWorld</code>), specify the following command:</p>
<pre><code>-Xtrace:suspend,trigger=method{HelloWorld.main,resume,suspend}
</code></pre>
<p>To print a Java stack trace to the console when the mycomponent.1 tracepoint is reached, specify the following command:</p>
<pre><code>-Xtrace:print=mycomponent.1,trigger=tpnid{mycomponent.1,jstacktrace}
</code></pre>
<p>To write a Java stack trace to the trace output file when the <code>Sample.code()</code> method is called, specify the following command:</p>
<pre><code>-Xtrace:maximal=mt,output=trc.out,methods={mycompany/mypackage/Sample.code},trigger=method{mycompany/mypackage/Sample.code,jstacktrace}
</code></pre>
<h3 id="what"><code>what</code></h3>
<pre><code>-Xtrace:what
</code></pre>
<p>Shows the current trace settings</p>
<h2 id="see-also">See also</h2>
<ul>
<li><a href="https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.vm.80.doc/docs/trace_application.html">Application trace</a></li>
<li><a href="../dump_heapdump/">Heap dump</a></li>
<li><a href="../dump_javadump/">Java dump</a></li>
<li><a href="../tool_jdmpview/">Dump viewer</a></li>
</ul>
<!-- ==== END OF TOPIC ==== xtrace.md ==== -->
</article>
</div>
</div>
</main>
<!--
* Copyright (c) 2017, 2022 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<footer class="md-footer">
<div class="md-footer-meta">
<!-- Add following links ...................................... -->
<div class="above-line">
<div class="above-line-links">
<div class="column">
<h3 >Docs</h3>
<span class="footer-link"><a href="/openj9/docs/openj9_newuser/" >New to OpenJ9?</a></span>
<span class="footer-link"><a href="/openj9/docs/introduction/">Getting started</a></span>
<span class="footer-link"><a href="/openj9/docs/cmdline_specifying/">Command-line options</a></span>
</div>
<div class="column">
<h3>Resources</h3>
<span class="footer-link"><a href="https://www.eclipse.org/openj9/about/" rel="noopener noreferrer" target="_blank">About</a></span>
<span class="footer-link"><a href="https://www.eclipse.org/openj9/performance/" rel="noopener noreferrer" target="_blank">Performance</a></span>
</div>
<div class="column">
<h3 >Community</h3>
<span class="footer-link"><a href="https://www.eclipse.org/openj9/news/" rel="noopener noreferrer" target="_blank">News</a></span>
<span class="footer-link"><a href="https://blog.openj9.org/" rel="noopener noreferrer" target="_blank">Blogs</a></span>
</div>
</div>
<div class="column-incubator">
<div class="arrange-column">
<h3 ><b>OpenJ9 is an Eclipse Incubator project</b></h3>
<a class="incubator-image" href="http://wiki.eclipse.org/Development_Resources/Process_Guidelines/What_is_Incubation" target="_blank"><img width="50px" src="../cr/incubator-logo.svg" alt="Eclipse Incubation"></a>
</div>
</div>
</div>
<div class="horizontal-line"></div>
<div class="below-line">
<span class="below-line-links"><a href="https://www.eclipse.org/" rel="noopener noreferrer" target="_blank">Eclipse Foundation Website </a></span>
<span class="below-line-links"><a href="https://www.eclipse.org/legal/privacy.php" rel="noopener noreferrer" target="_blank">Privacy Policy</a></span>
<span class="below-line-links"><a href="https://www.eclipse.org/legal/termsofuse.php" rel="noopener noreferrer" target="_blank">Terms of Use</a></span>
<span class="below-line-links"><a href="https://www.eclipse.org/legal/copyright.php" rel="noopener noreferrer" target="_blank">Copyright Agent</a></span>
<span class="below-line-links"><a href="https://www.eclipse.org/legal/" rel="noopener noreferrer" target="_blank">Legal</a></span>
<div class="below-line-social-media-icons">
<div class="md-footer-social">
<a href="https://github.com/eclipse-openj9/openj9" target="_blank" rel="noopener" title="OpenJ9 in GitHub" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://openj9.slack.com" target="_blank" rel="noopener" title="OpenJ9 on Slack" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
</a>
<a href="https://twitter.com/openj9" target="_blank" rel="noopener" title="OpenJ9 on Twitter" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
</a>
<a href="https://stackoverflow.com/search?q=OpenJ9" target="_blank" rel="noopener" title="OpenJ9 on StackOverflow" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M290.7 311 95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"/></svg>
</a>
</div>
</div>
</div>
<!-- End of added links........................................ -->
<!--
<div class="md-footer-social">
<a href="https://github.com/eclipse-openj9/openj9" target="_blank" rel="noopener" title="OpenJ9 in GitHub" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://openj9.slack.com" target="_blank" rel="noopener" title="OpenJ9 on Slack" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
</a>
<a href="https://twitter.com/openj9" target="_blank" rel="noopener" title="OpenJ9 on Twitter" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
</a>
<a href="https://stackoverflow.com/search?q=OpenJ9" target="_blank" rel="noopener" title="OpenJ9 on StackOverflow" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M290.7 311 95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"/></svg>
</a>
</div>
-->
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}, "search": "../assets/javascripts/workers/search.4fa0e4ee.min.js", "version": 2.0}</script>
<script src="../assets/javascripts/bundle.1d3bfcf1.min.js"></script>
<script src="../javascripts/oj9.js"></script>
</body>
</html>