Browse Prior Art Database

Thread Stack Monitor for Multithreaded Applications

IP.com Disclosure Number: IPCOM000119192D
Original Publication Date: 1996-Mar-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 2 page(s) / 59K

Publishing Venue

IBM

Related People

Carlson, WC: AUTHOR [+2]

Abstract

A method for keeping track of all threads in a multi-thread application is disclosed. The thread stack monitor keeps a record of function trace information on a "per thread" basis and allows monitoring of function entry with date and time.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 56% of the total text.

Thread Stack Monitor for Multithreaded Applications

      A method for keeping track of all threads in a multi-thread
application is disclosed.  The thread stack monitor keeps a record of
function trace information on a "per thread"  basis and allows
monitoring of function entry with date and time.

      Functions call a special monitor function to register entry and
exit of the function.  The monitor function may be combined with
those used for traditional program trace.

      The monitor uses this information to maintain a representation
of the function call stack for each thread.  This information is made
available as part of the application's error dump, used by the
programmers in problem resolution.

      A separate data area is set up for each thread of execution.
The data areas are used as Last In, First Out (LIFO) stacks.  When
the monitor function is called, the stack for the current thread is
updated.  If an entry is being registered, function and timestamp
information is placed on the stack.  If an exit is being registered,
the last entry on the stack is removed.  Furthermore, each thread
that is started can make an initial entry call to register itself as
running.  This provides a means to tell what threads are currently
running.

      The stack, therefore, contains entries for the current function
being executed, as well as historical information indicating the path
taken to the function (i.e., thread 1 calls function A, which c...