
# Generating a thread dump

> How to capture a Java thread dump from Cascade CMS on Linux with kill -3, or on Windows with jcmd.

URL: https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/diagnostics/generating-a-thread-dump.html
category: Cascade Administration
article-type: how-to
content-kind: faq
release-availability: all
tags: errors, installation
updated: 2026-10-06

A thread dump captures what every thread in the application is doing at one moment. Support may ask for one when the application is slow or appears hung.

## Linux, *nix, and macOS

1.  Get the process id (pid) of the Cascade CMS process:
    ```bash
    ps aux | grep java
    ```
         Results look similar to the following, where `6415` is the pid:
    ```bash
    cascade 6415 1.2 67.9 8546368 5203156 ? Sl Jun28 635:49 /usr/local/cascade/java/jre/bin/java ...
    ```

1.  Send a kill signal to that process:
    ```bash
    kill -3 6415
    ```

> This kill signal does not stop the application. It writes a thread dump into *tomcat/logs/catalina.out*.

## Windows, using PowerShell

1. Open Task Manager.
1.  Locate the PID of the running Cascade CMS process — *tomcat9.exe*, for example:   ![Cascade CMS process id shown in Windows Task Manager](https://www.hannonhill.com/cascadecms/latest/_files/images/cascade-administration/cascade-pid.png)
1. Open PowerShell using **Run as Administrator**.
1.  Change into the *java\bin* folder, for example:
    ```bash
    cd 'C:\Program Files\Cascade CMS\java\jdk\bin'
    ```

1.  Run the following, replacing `<PID>` with the pid you noted:
    ```bash
    ./jcmd <PID> Thread.print > cascade-thread-dump-dd-mm-yyyy.log
    ```

The thread dump is written to the file you named in that command.
