Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Tracing the Undocumented Exported Entry Points in an OS/2 Dynamic Link Library

IP.com Disclosure Number: IPCOM000102641D
Original Publication Date: 1990-Dec-01
Included in the Prior Art Database: 2005-Mar-17
Document File: 2 page(s) / 43K

Publishing Venue

IBM

Related People

Weeks, RC: AUTHOR

Abstract

A method is described for intercepting calls to exported entry points in an OS/2 dynamic link library (DLL) for the purpose of recording the sequence of calls to such entry points. This method enhances problem determination and performance measurement without requiring any source code changes to the DLL. The method described here does not require any knowledge of the input parameter lists required by each exported entry point.

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

Tracing the Undocumented Exported Entry Points in an OS/2 Dynamic Link Library

       A method is described for intercepting calls to exported
entry points in an OS/2 dynamic link library (DLL) for the purpose of
recording the sequence of calls to such entry points.  This method
enhances problem determination and performance measurement without
requiring any source code changes to the DLL.  The method described
here does not require any knowledge of the input parameter lists
required by each exported entry point.

      Consider two DLLs:  IBMAPPL and MYTRACE.  When the code in
MYTRACE is invoked, the stack is set up, as shown in Fig. 1. The
MYTRACE code invokes a generic tracing utility to trace the start of
the requested function. Then, the 32-bit address of the IBMAPPL
exported entry point is pushed onto the stack.  The stack then
appears as in Fig. 2. The MYTRACE code is now able to issue a far
return (RET FAR) to pass control to the IBMAPPL entry point.  This
restores the stack to the state depicted in Fig. 1. When the IBMAPPL
function is complete and a return instruction (RET) is executed,
control is passed back to the calling application instead of to
MYTRACE.  This prevents MYTRACE from tracing the end of the requested
function or any returned information, but without this method, no
tracing would be possible at all if the input parameter list was
unknown for even a single exported entry point in IBMAPPL.