EXAMPLE OF .MPP......Example of a ClipScan() .MPP file
OVERVIEW.............What is ClipScan?
MAP FILE.............What is a ClipScan (tm) map file?
EXTERNAL LIST........Creating an External List .PRG file
EXAMPLE OF .MPP
Example of a ClipScan() .MPP file
Description:
** Created by ClipScan (tm) v1.5 **
Library Description : dCLIP v3.00 Overlayable Library
Library File Name : DCLIP
Library File Size : 900344
Library File Date : 01/01/93 11:03
Overlay Code (0,1,2): 2
Edited by : Roger Donnay
Legend (Entire Library):
Overlay Code (0,1,2):
0 - NO modules are overlayable
1 - SOME modules are overlayable
2 - ALL modules are overlayable
Legend (Individual Modules):
Obj: - Object file name
Mod: - Module name for linker
Siz: - Size in bytes (decimal)
Des: - Description of module (what it does)
Pub: - List of Public symbols, UDFs, functions or procedures
Ext: - List of External symbols (calls to non-Clipper functions)
Stc: - List of Static symbols (UDFs visible only in this module)
Cxt: - List of Clipper calls (calls to Clipper functions)
Ovc: - Overlay Code
1 - Definately NOT overlayable
2 - Probably NOT overlayable
3 - May be overlayable
4 - 6 (reserved)
7 - Overlayable but may cause major slowing
8 - Overlayable but may cause minor slowing
9 - Definately overlayable
? - No Clue
Evc: - Overlay Code inserted by Editor of file (See Ovc: above)
Key: - Key Words
NEAR - Uses Near Calls
Com: - Comments
C - C code
ASM - ASM code
Extend - Uses Clipper Extend interface functions
STATICS - Contains STATIC Clipper UDFs
Clipper 5.0 - Clipper 5.0 code
Internal - Calls Clipper undocumented internals
-----------------------------------------------------------------
Obj: DBINFO
Mod: DBINFO.C
Siz: 1830
Des:
Ovc: 3
Evc:
Com: C, Extend
Key:
Pub: DC_WORKHAN, __dbInfo
Ext: DC_WORKHAN
Stc:
Cxt: __acrtused, _VSTRCOLD, __parinfo, __parni, __Workareas, ;
__retc, __retni, __retnl, __retl, __ret
-----------------------------------------------------------------
| | |
-----------------------------------------------------------------
Obj: DBGBROW5
Mod: DBGBROW5
Siz: 5669
Des:
Ovc: 3
Evc:
Com: C, Extend
Key:
Pub: _DCDBGCLR, _DCDBGCLOS, _DCDBGWIND, _DCDBGBROW, ;
newbuff26d469bc, _DCDBGBRK, dcstrint26d469bc, ;
refreshscreen26d469bc, scopy26d469bc, scmp26d469bc, ;
prgopen26d469bc, init_filetable26d469bc, prgline26d469bc, ;
_dc_scrseg, _dc_scrrow, _dc_startrow
Ext: _DCDBGCLR, _dc_open, _dc_close, _dc_seek, _dc_read, _dc_err, ;
_dc_div, __dckey50, _dc_dimline, _dc_writeln, _dc_scrollup, ;
_dc_scrolldn, _dc_scrmode, scanbuff26d469bc
Stc:
Cxt: __acrtused, __retni, __retc, __parni, __parinfo, __parc, ;
__retl
-----------------------------------------------------------------
OVERVIEW
What is ClipScan?
Description:
ClipScan (tm) is a Clipper utility program that provides many
useful functions to help in analyzing Clipper applications.
The main feature of ClipScan is the ability to create a
map file of any library. This map (.MPP) file is a text file
that contains necessary information about the modules in any
library, including lists of public symbols, external calls,
Clipper calls, statics, overlayability, size, etc.
ClipScan is written mostly in Clipper and is invoked by using
the CLIPSCAN command at the dot prompt or the DC_CLIPSCAN()
function. The DC_CLIPSCAN() function and supporting routines
are included in the dCLIP libraries.
A separate utility named CLIPSCAN.EXE may be created by using
the CLIPSCAN.RT (Rtlink) or CLIPSCAN.BL (Blinker) link scripts
provided.
MAP FILE
What is a ClipScan (tm) map file?
Description:
An .MPP file is a text file created by scanning a library or
set of .OBJ files with ClipScan().
The information in an .MPP map file can be used to analyze
your clipper application or third-party libraries:
1. The map is simply an ASCII file, therefore it can be viewed
with any editor or printed to create a hardcopy reference.
2. The map is "structured" in such a manner that it can be
scanned by utility programs that automatically produce
"optimized" link-script files.
3. The map provides overlay information about every individual
module in a library. This Ovc: code number tells you
whether or not you can place the module into an overlay
section. Third generation linkers now support overlaying of
library "modules". If the map says that a module is
overlayable, then it must also provide a reference name
(Mod:) to the linker.
4. Sometimes it just is not practical to overlay modules due
to their small size. The map provides this information to
help you decide which modules to give priority.
5. The map tells you how the object was compiled. For example,
Clipper modules can always be dynamic-overlayed and
"symbol-packed". C modules are usually well-behaved and work
well in overlays. ASM modules may cause problems when
overlaying if they don't use the Clipper "extend" interface.
6. The map gives you a list of the functions or procedures
contained in each module. Often times your third-party
documentation will give you information about how to use a
function but will not give you a clue as to which library
module/object contains the function. Many times it is
important to see how large an object is before you decide
whether to use one of it's functions.
7. The map gives you a list of functions or procedures which
are called by each module. Rarely is this information
provided in third-party documentation, so it is very
difficult to get a grasp on how large your application will
grow if you use certain functions or what the "dependency"
issues really are.
8. The map gives you a list of "Clipper" symbols which are
called by each module. This information is valuable to help
determine whether or not the function makes calls to non-
documented Clipper internals. Many third-party libraries do
not make proper use of the Clipper "extend" interface and
therefore are less likely to be compatible with new revisions
of Clipper.
9. The map gives you the names of all PUBLIC symbols in the
library to help you determine whether or not there will be a
symbol conflict with your own applications or other third-
party libraries.
10. The map gives you the names of all STATIC symbols in the
library.
11. The map will tell you which version of Clipper was used to
compile all Clipper objects. This information can help you
determine if you have the proper library.
EXTERNAL LIST
Creating an External List .PRG file
Description:
Selection 4 from the ClipScan (tm) menu will scan a designated
library file and create a .PRG file with the names of all
PUBLIC functions and procedures preceded by an EXTERNAL
command. Use this selection when you want to external all
symbols in a library for creating a dCLIP engine. Simply
enter the full path name of the file and ClipScan will do the
rest.
Example of an external .PRG file created by ClipScan (tm) :
* Object: PACKIT Module: PACKIT
EXTE PACKIT
* Object: CALLSTCK Module: CALLSTCK
EXTE _D_PNAME, _D_PCOUNT
See Also:
ASSIST