How to get Application Hang Detector

Navigation: »No topics above this level«

How to get Application Hang Detector

 Return to chapter overview

Application Hang Detector is free for commercial use. Application Hang Detector can be downloaded for Software Verify's website at https://www.softwareverify.com.

This help manual is available in Compiled HTML Help (Windows Help files), PDF, and online.

Windows Help

PDF

Online

Whilst Application Hang Detector is free for commercial use, Application Hang Detector is copyrighted software and is not in the public domain. You are free to use the software at your own risk. You are not allowed to distribute the software in any form, or to sell the software, or to host the software on a website.

Contact Software Verify at:

Software Verify Limited

Suffolk Business Park

Eldo House

Kempson Way

Bury Saint Edmunds

IP32 7AR

United Kingdom

email | sales@softwareverify.com
web | https://www.softwareverify.com
blog | https://www.softwareverify.com/blog
twitter | http://twitter.com/softwareverify

Visit our blog to read our articles on debugging techniques and tools.

Follow us on twitter to keep track of the latest software tools and updates.

Versions

There are two versions of Application Hang Detector:

·A version for 32 bit operating systems: applicationHangDetector.exe

·A version for 64 bit operating systems: applicationHangDetector_x64.exe.

The 32 bit version will run on 64 bit operating systems but will only show information about 32 bit processes.

The 64 bit version will only run on 64 bit operating systems and will only show information about 64 bit processes.

Both versions are installed if you are using a 64 bit operating system.


What does Application Hang Detector do?

Navigation: »No topics above this level«

What does Application Hang Detector do?

 Return to chapter overview

Application Hang Detector allows you to inspect information about each running thread in an application.

The display shows wait chain data in the the lower window for the process that is selected in the upper window.

For any selected thread, that thread and related threads are shown with a yellow background.

Any deadlocked threads have their wait chains shown in red.

Information that is displayed about each thread:

Thread id

This is the numeric identifer assigned to the thread by the Windows operating system.

Thread Name

This is the name of the thread if the thread has been given a name using the SetThreadDescription() API. This is only available on Windows 10.

If a thread description is not available we attempt to provide a name for this thread by querying the thread's start address, and if successful we try to turn this start address into a useful symbolic name. Depending on the process and the operating system these operations may success, in which we display a name, or they may fail in which case we display nothing.

Thread Wait Chain

This is the wait chain for this thread. For each entry we show the process id and the thread id and if the object being waited upon has a name, we show that too. If process names and thread names have been enabled we show these as well. Some wait chains rely on waiting for other processes, which are more readily identified by process name than process id. Any deadlocks that are detected are shown in red.

Wait Time

This is how long the thread has been waiting.

Context switches

This is the number of context switches this thread has been involved in.


The user interface

Navigation: »No topics above this level«

The user interface

 Return to chapter overview

The Application Hang Detector user interface is split into two sections:

·Process viewer

·Thread viewer

Usage

In the top windows select the process that you wish to view. The threads for that process will be shown in the lower window.

You can sort both the process list and the thread list by clicking the column header to select the column. Clicking the already selected column header again reverses the sort direction.

The values shown for each thread are described here. A graphical representation of these values is shown behind the numeric values where possible.

Process Controls

The contents of the process list are controlled by the two check boxes on the top right of the display.

Select these as appropriate to show the processes you want in the list.

Show user processes

Show processes that are not owned by the operating system.

Show system processes

Show processes owned by the operating system.

Show services

Show processes that are services.

Thread Controls

Refresh

You can update the display manually by clicking the Refresh button. This is useful if you have disabled automatic updates via the the Update Interval control.

Update Interval

You can change how frequently the display is updated using the Update Interval control. The default is to update every one second.

Process Names

As well as showing the process id in the wait chain the process name is displayed. This is enabled by default.

Thread Names

As well as showing the thread id in the wait chain the thread name is displayed. This is enabled by default.

Context Menu

The bottom grid has a context menu. Each row in the grid represents a thread in a process.

Create a Minidump...

This creates a minidump for the process that has been selected by the context menu (this may not be the process selected in the process list).

A create minidump dialog is displayed asking you where to save the minidump.


Create a minidump

Navigation: »No topics above this level«

Create a minidump

 Return to chapter overview

The Create Minidump dialog is provided to allow you to choose where to save your minidump.

A suggested filename will be provided in the edit field. You can edit this filename or choose a new filename using the Browse... button to display the system file chooser.

Open Folder... displays the contents of the folder identified by the filename. You can use this to browse any existing minidumps.

Create Minidump will create the minidump for the selected process.