| .\" Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved. |
| .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| .\" |
| .\" This code is free software; you can redistribute it and/or modify it |
| .\" under the terms of the GNU General Public License version 2 only, as |
| .\" published by the Free Software Foundation. |
| .\" |
| .\" This code is distributed in the hope that it will be useful, but WITHOUT |
| .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| .\" version 2 for more details (a copy is included in the LICENSE file that |
| .\" accompanied this code). |
| .\" |
| .\" You should have received a copy of the GNU General Public License version |
| .\" 2 along with this work; if not, write to the Free Software Foundation, |
| .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| .\" |
| .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| .\" or visit www.oracle.com if you need additional information or have any |
| .\" questions. |
| .\" |
| .\" Automatically generated by Pandoc 2.3.1 |
| .\" |
| .TH "JSTACK" "1" "2020" "JDK 14" "JDK Commands" |
| .hy |
| .SH NAME |
| .PP |
| jstack \- print Java stack traces of Java threads for a specified Java |
| process |
| .SH SYNOPSIS |
| .PP |
| \f[B]Note:\f[R] This command is experimental and unsupported. |
| .PP |
| \f[CB]jstack\f[R] [\f[I]options\f[R]] \f[I]pid\f[R] |
| .TP |
| .B \f[I]options\f[R] |
| This represents the \f[CB]jstack\f[R] command\-line options. |
| See \f[B]Options for the jstack Command\f[R]. |
| .RS |
| .RE |
| .TP |
| .B \f[I]pid\f[R] |
| The process ID for which the stack trace is printed. |
| The process must be a Java process. |
| To get a list of Java processes running on a machine, use either the |
| \f[CB]ps\f[R] command or, if the JVM processes are not running in a |
| separate docker instance, the \f[B]jps\f[R] command. |
| .RS |
| .PP |
| \f[B]Note:\f[R] JDK 10 has added support for using the Attach API when |
| attaching to Java processes running in a separate docker process. |
| However, the \f[CB]jps\f[R] command will not list the JVM processes that |
| are running in a separate docker instance. |
| If you are trying to connect a Linux host with a Virtual Machine that is |
| in a docker container, you must use tools such as \f[CB]ps\f[R] to look up |
| the PID of the JVM. |
| .RE |
| .SH DESCRIPTION |
| .PP |
| The \f[CB]jstack\f[R] command prints Java stack traces of Java threads for |
| a specified Java process. |
| For each Java frame, the full class name, method name, byte code index |
| (BCI), and line number, when available, are printed. |
| C++ mangled names aren\[aq]t demangled. |
| To demangle C++ names, the output of this command can be piped to |
| \f[CB]c++filt\f[R]. |
| When the specified process is running on a 64\-bit JVM, you might need |
| to specify the \f[CB]\-J\-d64\f[R] option, for example: |
| \f[CB]jstack\ \-J\-d64\f[R] \f[I]pid\f[R]. |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| This command is unsupported and might not be available in future |
| releases of the JDK. |
| In Windows Systems where the \f[CB]dbgeng.dll\f[R] file isn\[aq]t present, |
| the Debugging Tools for Windows must be installed so that these tools |
| work. |
| The \f[CB]PATH\f[R] environment variable needs to contain the location of |
| the \f[CB]jvm.dll\f[R] that is used by the target process, or the location |
| from which the core dump file was produced. |
| .SH OPTIONS FOR THE JSTACK COMMAND |
| .TP |
| .B \f[CB]\-l\f[R] |
| The long listing option prints additional information about locks. |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-h\f[R] or \f[CB]\-help\f[R] |
| Prints a help message. |
| .RS |
| .RE |