This is a java thread-dump viewer. It provides a master-details view of a thread dump(s) with ability to filter interesting threads and to hide uninteresting ones.
Add the following to your init.el:
(require 'package)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)
:
(when (not (package-installed-p 'thread-dump)) (package-install 'thread-dump))
There are 2 entry points to the viewer: thread-dump-open-dir
creates a viewer for directory with thread dumps,
thread-dump-open-file creates a viewer for given file.
If you use dired the following code might be useful:
(defun thread-dump-open-dired-dir () (interactive) (thread-dump-open-dir (dired-current-directory)))
:
(defun thread-dump-open-marked-files ()
(interactive)
(let ((files (dired-get-marked-files)))
(thread-dump-open-files files)))
:
(add-hook 'dired-mode-hook
(lambda ()
(define-key dired-mode-map (kbd "C-c t d") 'thread-dump-open-dired-dir)
(define-key dired-mode-map (kbd "C-c t f") 'thread-dump-open-marked-files)))
It adds 2 keybindings to dired-mode: C-c t d opens a viewer for
current dired directory and C-c t f opens a viewer for selected
files or, if no files selected, for file under the cursor.
You can use j and k (or n and p) for navigation between
threads in the master view on the left. RET and o open thread
under cursor and switch to the thread buffer, v only shows a
thread without leaving the master buffer.
Use h to hide a single thread and H to hide all the threads
with the same stacktrace as in thread under cursor. To reset hidden
threads use C-u H.
Use / and type a word to add a filter, viewer will show only the
threads matched by the filter. / RET resets a filter.
If you run a viewer for several files, use N and P to view next
and previous thread dump. Filters and hidden threads are preserved
between thread dumps.
Use q to leave thread-dump viewer.