Copyright: Version 1.0
Citation: CheckSymWin Help File


 CheckSymWin Help Index

How To Use CheckSymWin

To begin, click on Tools, Options and select the options that you would

like to run CheckSym with.  Once you have your options selected, click

OK.

For additional information on CheckSymWin Click HereHIDR_DOC1TYPE

You can also view Q308400 for updates to the tool

Click for the complete help file on CheckSym HereHID_EDIT_REPLACEHIDR

Examples of Typical OperationsAFX_HIDD_REPLACE

Examples of Advanced OperationsHID_EDIT_CLEAR

Functional Components of CheckSym

Collection OptionsHID_EDIT_CLEAR_ALL

Information Checking OptionsHID_PREV_PANE

Output OptionsHID_NEXT_PANE

Commands

File menu

Edit menu

View menu

Window menu

Help menu


File menu commands

The File menu offers the following commands:

New	Creates a new document.
Open	Opens an existing document.
Close	Closes an opened document.
Save	Saves an opened document using the same file name.
Save As	Saves an opened document to a specified file name.
Print	Prints a document.
Print Preview	Displays the document on the screen as it would appear printed.
Print Setup	Selects a printer and printer connection.
Send...	Sends the active document through electronic mail.
Exit	Exits <<YourApp>>.


Edit menu commands

The Edit menu offers the following commands:

Undo	Reverse previous editing operation.
Cut	Deletes data from the document and moves it to the clipboard.
Copy	Copies data from the document to the clipboard.
Paste	Pastes data from the clipboard into the document.
Paste Link	Pastes from the clipboard a link to data in another application.
Insert New Object	Inserts and embeds an object, such as a chart or an equation in a document.
Links	List and edit links to embedded documents.


View menu commands

The View menu offers the following commands:

Toolbar	Shows or hides the toolbar.
Status Bar	Shows or hides the status bar.


Window menu commands

The Window menu offers the following commands, which enable you to arrange multiple views of multiple documents in the application window:

New Window	Creates a new window that views the same document.
Cascade	Arranges windows in an overlapped fashion.
Tile	Arranges windows in non-overlapped tiles.
Arrange Icons	Arranges icons of closed windows.
Split	Split the active window into panes.
Window 1, 2, ...	Goes to specified window.


Help menu commands

The Help menu offers the following commands, which provide you assistance with this application:

Help Topics	Offers you an index to topics on which you can get help.
About	Displays the version number of this application.


File New command
New command (File menu)

Use this command to create a new document in <<YourApp>>.  Select the type of new file you want to create in the File New dialog box.  << Remove previous sentence if your application supports only one document type. >>

You can open an existing document with the Open command.

Shortcuts

Toolbar:

Keys:	CTRL+N


File New dialog box

<< Delete this help topic if your application supports only one document type. >>

Specify the type of document you wish to create:

<< List your application's document types here >>


File Open command
Open command (File menu)

Use this command to open an existing document in a new window.  You can open multiple documents at once.  Use the Window menu to switch among the multiple open documents.  See Window 1, 2, ... command.

You can create new documents with the New command.

Shortcuts

Toolbar:

Keys:	CTRL+O


File Open dialog box

The following options allow you to specify which file to open:

File Name

Type or select the filename you want to open.  This box lists files with the extension you select in the List Files of Type box.

List Files of Type

Select the type of file you want to open:

<< List your application's file types here. >>

Drives

Select the drive in which <<YourApp>> stores the file that you want to open.

Directories

Select the directory in which <<YourApp>> stores the file that you want to open.

Network...

Choose this button to connect to a network location, assigning it a new drive letter.


File Close command
Close command (File menu)

Use this command to close all windows containing the active document.  <<YourApp>> suggests that you save changes to your document before you close it.  If you close a document without saving, you lose all changes made since the last time you saved it.  Before closing an untitled document, <<YourApp>> displays the Save As dialog box and suggests that you name and save the document.

You can also close a document by using the Close icon on the document's window, as shown below:


File Save command
Save command (File menu)

Use this command to save the active document to its current name and directory.  When you save a document for the first time, <<YourApp>> displays the Save As dialog box so you can name your document.  If you want to change the name and directory of an existing document before you save it, choose the Save As command.

Shortcuts

Toolbar:

Keys:	CTRL+S


File Save As command
Save As command (File menu)

Use this command to save and name the active document.  <<YourApp>> displays the Save As dialog box so you can name your document.

To save a document with its existing name and directory, use the Save command.


Send command (File menu)

Use this command to send the active document through electronic mail.  This command presents a mail window with the active document attached to it.  You may then fill out the To: field, Subject: field, etc., and add text to the body of the message if you wish.  When you are finished you may click the "Send" button to send the message.


File Save As dialog box

The following options allow you to specify the name and location of the file you're about to save:

File Name

Type a new filename to save a document with a different name.  <<YourApp>> adds the extension you specify in the Save File As Type box.

Drives

Select the drive in which you want to store the document.

Directories

Select the directory in which you want to store the document.

Network...

Choose this button to connect to a network location, assigning it a new drive letter.

<< Add other File Save As dialog box options depending on which ones your application chooses via the OFN_ flags of the OPENFILENAME structure used by the CFileDialog. >>


File 1, 2, 3, 4 command
1, 2, 3, 4 command (File menu)

Use the numbers and filenames listed at the bottom of the File menu to open the last four documents you closed.  Choose the number that corresponds with the document you want to open.


File Exit command
Exit command (File menu)

Use this command to end your <<YourApp>> session.  You can also use the Close command on the application Control menu.  <<YourApp>> prompts you to save documents with unsaved changes.

Shortcuts

Mouse:	Double-click the application's Control menu button.

Keys:	ALT+F4


Undo/Can't Undo command (Edit menu)

<< Your application's user interface for Undo may differ from the one described below.  Modify this help text accordingly. >>

Use this command to reverse the last editing action, if possible.   The name of the command changes, depending on what the last action was.  The Undo command changes to Can't Undo on the menu if you cannot reverse your last action.

Shortcuts

Toolbar:

Keys:	CTRL+Z or

ALT-BACKSPACE


Redo command (Edit menu)

<< Write application-specific help here. >>


Cut command (Edit menu)

Use this command to remove the currently selected data from the document and put it on the clipboard.  This command is unavailable if there is no data currently selected.

Cutting data to the clipboard replaces the contents previously stored there.

Shortcuts

Toolbar:

Keys:	CTRL+X


Copy command (Edit menu)

Use this command to copy selected data onto the clipboard.  This command is unavailable if there is no data currently selected.

Copying data to the clipboard replaces the contents previously stored there.

Shortcuts

Toolbar:

Keys:	CTRL+C


Paste command (Edit menu)

Use this command to insert a copy of the clipboard contents at the insertion point.  This command is unavailable if the clipboard is empty.

Shortcuts

Toolbar:

Keys:	CTRL+V


View Toolbar command
Toolbar command (View menu)

Use this command to display and hide the Toolbar, which includes buttons for some of the most common commands in <<YourApp>>, such as File Open.  A check mark appears next to the menu item when the Toolbar is displayed.

See Toolbar for help on using the toolbar.


Toolbar

The toolbar is displayed across the top of the application window, below the menu bar.  The toolbar provides quick mouse access to many tools used in <<YourApp>>,

To hide or display the Toolbar, choose Toolbar from the View menu (ALT, V, T).

<< Add or remove toolbar buttons from the list below according to which ones your application offers. >>

Click	To

Open a new document.

Open an existing document.  <<YourApp>> displays the Open dialog box, in which you can locate and open the desired file.

Save the active document or template with its current name.  If you have not named the document, <<YourApp>> displays the Save As dialog box.

Print the active document.

Remove selected data from the document and stores it on the clipboard.

Copy the selection to the clipboard.

Insert the contents of the clipboard at the insertion point.

Reverse the last editing.  Note:  You cannot undo some actions.

Go to the first record in the current selection.

Go to the previous record in the current selection.

Go to the next record in the current selection.

Go to the last record in the current selection.


View Status Bar Command
Status Bar command (View menu)

Use this command to display and hide the Status Bar, which describes the action to be executed by the selected menu item or depressed toolbar button, and keyboard latch state. A check mark appears next to the menu item when the Status Bar is displayed.

See Status Bar for help on using the status bar.


Status Bar

The status bar is displayed at the bottom of the <<YourApp>> window.  To display or hide the status bar, use the Status Bar command in the View menu.

The left area of the status bar describes actions of menu items as you use the arrow keys to navigate through menus.  This area similarly shows messages that describe the actions of toolbar buttons as you depress them, before releasing them.  If after viewing the description of the toolbar button command you wish not to execute the command, then release the mouse button while the pointer is off the toolbar button.

The right areas of the status bar indicate which of the following keys are latched down:

Indicator	Description

CAP	The Caps Lock key is latched down.

NUM	The Num Lock key is latched down.

SCRL	The Scroll Lock key is latched down.


New command (Window menu)

Use this command to open a new window with the same contents as the active window.  You can open multiple document windows to display different parts or views of a document at the same time.  If you change the contents in one window, all other windows containing the same document reflect those changes.  When you open a new window, it becomes the active window and is displayed on top of all other open windows.


Cascade command (Window menu)

Use this command to arrange multiple opened windows in an overlapped fashion.


Tile command (Window menu)

Use this command to arrange multiple opened windows in a non-overlapped fashion.


Tile Horizontal command (Window menu)

Use this command to vertically arrange multiple opened windows in a non-overlapped fashion.


Tile Vertical command (Window menu)

Use this command to arrange multiple opened windows side by side.


Window Arrange Icons Command

Use this command to arrange the icons for minimized windows at the bottom of the main window.  If there is an open document window at the bottom of the main window, then some or all of the icons may not be visible because they will be underneath this document window.


Split Command (Window menu)

Use this command to split the active window into panes.  You may then use the mouse or the keyboard arrows to move the splitter bars.  When you are finished, press the mouse button or enter to leave the splitter bars in their new location.  Pressing escape keeps the splitter bars in their original location.  << In a single document interface application, this command will appear on the View menu. >>


1, 2, ... command (Window menu)

<<YourApp>> displays a list of currently open document windows at the bottom of the Window menu.  A check mark appears in front of the document name of the active window.  Choose a document from this list to make its window active.


Index command (Help menu)

Use this command to display the opening screen of Help.  From the opening screen, you can jump to step-by-step instructions for using <<YourApp>> and various types of reference information.

Once you open Help, you can click the Contents button whenever you want to return to the opening screen.


Using Help command (Help menu)

Use this command for instructions about using Help.


About command (Help menu)

Use this command to display the copyright notice and version number of your copy of <<YourApp>>.


Help Using Help Command
Context Help command

Use the Context Help command to obtain help on some portion of <<YourApp>>.  When you choose the Toolbar's Context Help button, the mouse pointer will change to an arrow and question mark.  Then click somewhere in the <<YourApp>> window, such as another Toolbar button.  The Help topic will be shown for the item you clicked.

Shortcut

Keys:	SHIFT+F1


Title Bar

<< Show your application's title bar here. >>

The title bar is located along the top of a window.  It contains the name of the application and document.

To move the window, drag the title bar.  Note: You can also move dialog boxes by dragging their title bars.

A title bar may contain the following elements:

Application Control-menu button

Document Control-menu button

Maximize button

Minimize button

Name of the application

Name of the document

Restore button


Scroll bars

Displayed at the right and bottom edges of the document window.  The scroll boxes inside the scroll bars indicate your vertical and horizontal location in the document.  You can use the mouse to scroll to other parts of the document.

<< Describe the actions of the various parts of the scrollbar, according to how they behave in your application. >>


Size command (System menu)

Use this command to display a four-headed arrow so you can size the active window with the arrow keys.

After the pointer changes to the four-headed arrow:

1.	Press one of the DIRECTION keys (left, right, up, or down arrow key) to move the pointer to the border you want to move.

2.	Press a DIRECTION key to move the border.

3.	Press ENTER when the window is the size you want.

Note:  This command is unavailable if you maximize the window.

Shortcut

Mouse:	Drag the size bars at the corners or edges of the window.


Move command (Control menu)

Use this command to display a four-headed arrow so you can move the active window or dialog box with the arrow keys.

Note:  This command is unavailable if you maximize the window.

Shortcut

Keys:	CTRL+F7


System Minimize Command
Minimize command (application Control menu)

Use this command to reduce the <<YourApp>> window to an icon.

Shortcut

Mouse:	Click the minimize icon [image] on the title bar.

Keys:	ALT+F9


Maximize command (System menu)

Use this command to enlarge the active window to fill the available space.

Shortcut

Mouse:	Click the maximize icon [image] on the title bar; or double-click the title bar.

Keys:	CTRL+F10 enlarges a document window.


Next Window command (document Control menu)

Use this command to switch to the next open document window.  <<YourApp>> determines which window is next according to the order in which you opened the windows.

Shortcut

Keys:	CTRL+F6


Previous Window command (document Control menu)

Use this command to switch to the previous open document window.  <<YourApp>> determines which window is previous according to the order in which you opened the windows.

Shortcut

Keys:	SHIFT+CTRL+F6


Close command (Control menus)

Use this command to close the active window or dialog box.

Double-clicking a Control-menu box is the same as choosing the Close command.

Note:  If you have multiple windows open for a single document, the Close command on the document Control menu closes only one window at a time.  You can close all windows at once with the Close command on the File menu.

Shortcuts

Keys: 	CTRL+F4 closes a document window

ALT+F4 closes the <<YourType>> window or dialog box


Restore command (Control menu)

Use this command to return the active window to its size and position before you chose the Maximize or Minimize command.


Switch to command (application Control menu)

Use this command to display a list of all open applications.  Use this "Task List" to switch to or close an application on the list.

Shortcut

Keys:	CTRL+ESC

Dialog Box Options

When you choose the Switch To command, you will be presented with a dialog box with the following options:

Task List

Select the application you want to switch to or close.

Switch To

Makes the selected application active.

End Task

Closes the selected application.

Cancel

Closes the Task List box.

Cascade

Arranges open applications so they overlap and you can see each title bar.  This option does not affect applications reduced to icons.

Tile

Arranges open applications into windows that do not overlap.  This option does not affect applications reduced to icons.

Arrange Icons

Arranges the icons of all minimized applications across the bottom of the screen.


View Ruler Command
Information Collection from a Customers Machine

One of the more common uses of CheckSym is to get module information from a customers machine.  This information can then be used by PSS to build a repro or a symbol tree of the customers environment.  To get module information from a customer then you can send the customer a copy of this form message:

Customer Ready E-mail Message

CheckSym is a utility typically used by Debug engineers to verify symbols for processes and dump files. The utility also has the ability to list all the DLLs (including file date, size, and version information) used by an .exe file (for example, Inetinfo.exe).

Instructions

CheckSym only functions on systems that run Windows NT 4.0, Windows 2000 Server, Windows XP or higher.

1.	Extract the CheckSym.zip file to your hard drive. You may want to copy the file to a folder that is in your path (for example,\Winnt\System32).

2.	Start a command prompt and navigate to the folder that contains Checksym.exe, and then type the following command:

checksym -p * -r -s -o output.csv -q

3.	Please zip the Output.csv file and send me the zipped file by using e-mail (Username@microsoft.com).

NOTE: CheckSym is only a data collection utility and it does not alter any part of your system.


Choose Font Dialog
Choose Font dialog box

<< Write application-specific help here. >>


Choose Color Dialog
Choose Color dialog box

<< Write application-specific help here. >>


Edit Find Command
Find command (Edit menu)

<< Write application-specific help here. >>


Find Dialog
Find dialog box

<< Write application-specific help here. >>


Edit Replace Command
CheckSymWin Overview

CheckSymWin is a tool that helps facilitate the use of CheckSym.  It is designed to assist users in creating command lines that can be used for building symbol trees, locating matching symbols, identifying modules of a running process among other useful operations that begin the debug process.

CheckSymWin adds additional functionally by giving users the ability to Save and Load command lines that they use frequently.  This helps to get the debug process started more quickly without having to recreate command lines from memory.

Additionally, if the _NT_SYMBOL_PATH environment variable has been set in the System Control Panel then CheckSymWin will use that path when collecting symbol information using the Y option.  (If you need information on what the correct symbol path should be then contact sjustice@microsoft.com or gregwi@microsoft.com.

CheckSymWin will also retrieve the current Task List of the processes running on your machine.  To view the Task List, just click on the Task List button on the Collection Options tab and a drop down menu will be populated with the Process ID’s (PID) and Names of the running processes on your machine.  Just click on the process that you want to have analyzed to update the command line with it’s PID.

There are many other features included in CheckSymWin but the use of these features should be self explanatory through the property pages and dialogs that guide you through the use of CheckSym.

To get stated, Click on Tools > Options or simply click on the Red Checkmark that is on the Toolbar.

When you are finished, then the results of your operations are displayed in HTML formatted windows.  You can print or save these documents for future reference using the File menu or toolbar if you so desire.

Note:  The saved settings for CheckSymWin command lines are saved in HKEY_LOCAL_MACHINE\Software\Microsoft\CheckSymWin\Saved.  You shouldn’t need to make any modifications to this key and this registry path is only provided for your information.


Replace Dialog
Typical Usage Examples

You want to verify the symbols for files in a directory (%SYSTEMROOT%\SYSTEM32)

in the default symbol directory (%SYSTEMROOT%\SYMBOLS)

     CHECKSYM -F %SYSTEMROOT%\SYSTEM32 -V

You want to do the same search, but for only executables...

     CHECKSYM -F %SYSTEMROOT%\SYSTEM32\*.EXE -V

You want to search a directory using multiple symbol paths...

     CHECKSYM -F %SYSTEMROOT%\SYSTEM32\ -V -Y V:\nt40sp4;V:\nt40rtm

You want to know what modules are loaded for a process (and the path to each)

Start NOTEPAD.EXE, and then type:

     CHECKSYM -P NOTEPAD.EXE

You want to know if you have good symbols for a process (notepad.exe).

     CHECKSYM -P NOTEPAD.EXE -V

You want to know the file version for every module loaded by a process.

     CHECKSYM -P NOTEPAD.EXE -R

You want to know if you have good symbols for ALL processes on your machine.

     CHECKSYM -P * -V


Edit Repeat Command
Repeat command (Edit menu)

Use this command to repeat the last editing command carried out.  The Repeat menu item changes to Can't Repeat if you cannot repeat your last action.

Shortcut

Key:	F4


Edit Clear Command
Advanced Usage Examples

You are going to prepare to debug a remote system, and you want to ensure

that you have good symbols locally for debugging the remote system.  You want

to verify this prior to initiating the debug session.

Use checksym twice, once on the remote system to gather information and create

an output file, and then once on your system using the output file created

as an input argument.

For example, run this on the remote system

     CHECKSYM -P * -S -R -O C:\TEMP\PROCESSES.CSV

The C:\TEMP\PROCESSES.CSV file will contain a wealth of information about

the processes that were running, and the modules loaded by every process.

Now, get the output file from the remote system, and copy it locally.  Then

run CHECKSYM again, using the file as an input argument...

     CHECKSYM -I C:\TEMP\PROCESSES.CSV -V

Another useful option is -B (build a symbol tree).  It allows you to update

or create a symbol tree that contains matching symbols.  If you have to use

many symbol paths in order to have correct symbols available to a debugger,

can use the -B option to build a single symbol tree to simplify debugging.

     CHECKSYM -P * -B C:\MySymbols -V -Y V:\Nt4;V:\Nt4Sp6a;V:\NtHotfixes


Edit Clear All
Collection Options

At least one collection option must be specified.  The following options are

currently supported.

   -P <Argument> : Collect Information From Running Processes

                   When used in conjunction with -O the output file will

                   contain information about your running system.  This

                   operation should not interfere with the operation of

                   running processes.

                   <Argument> = [ * | Process ID (pid) | Process Name ]

                   Multiple arguments can be combined together to query

                   multiple PIDs or processes.  Separate each argument with

                   a semi-colon.

                   For example,

                   -P 123;234;NOTEPAD.EXE;CMD.EXE

                   would return only these four process matches.

                   To query all running processes, specify the wildcard

                   character '*'.  To specify a specific process, you can

                   provide the Process ID (as a decimal value), or the Process

                   Name (eg. notepad.exe).  If you use the Process Name as the

                   argument, and multiple instances of that process are

                   running they will all be inspected.

-D : Collect Information from Running Device Drivers

                   This option will obtain information for all device drivers

                   (*.SYS files) running on the current system.

-F[<blank>|1|2] <File/Dir Path>: Collect Information From File System

                   This option will allow you to obtain module information

                   for modules on the specified path.  Multiple paths may be

                   provided, separated by semicolons.  This input method is

                   useful for situations where the module(s) is not loaded by

                   an active process.  (Eg. Perhaps a process is unable to start

                   or perhaps you simply want to collect information.)

                   about files from a particular directory location.)

                   -F or -F1 : (Default) A file or directory may be provided.  If

                               a file is specified, it is evaluted.  If a directory

                               is provided then the files matching any provided wild-

                               cards are searched.

                   -F2       : Same as -F except recursion will be used.

                   PSEUDO-ENVIRONMENT VARIABLES

                   Checksym supports environment variables used where ever paths

                   are provided (i.e. %systemroot% is a valid environment variable).

                   Checksym also supports a limited set of "pseudo-environment"

                   variables which you can provide in an location a normal environment

                   variable is allowed.  These pseudo-environment variables expand

                   into the appropriate installation directory for the product they

                   are associated with.

                   Here are all the pseudo-environment variables currently supported:

                   %EXCHSRVR%	= Microsoft Exchange Server

                   %IE%	= Microsoft Internet Explorer

                   %INETSRV%	= Microsoft Internet Information Services

                   %OFFICE2000%	= Microsoft Office 2000

                   %OFFICEXP%	= Microsoft Office XP

                   %SMSSERVER%	= Microsoft SMS Server

                   %SNASERVER%	= Microsoft SNA Server

                   %SQLSERVER%	= Microsoft SQL Server

                   %WSPSRV%	= Microsoft Winsock Proxy Server

  -I <File Path> : Collect Information from a Saved Checksym Generated CSV File

                   This input method is useful when you want to evaluate

                   whether you have proper symbols for modules on a different

                   system.  Most commonly this is useful for preparing to do a

                   remote debug of a remote system.  The use of -I prohibits

                   the use of other collection options.

  -Z <File Path> : Collect Information from a DMP File

                   This input method is useful when you have a DMP file and

                   to ensure that you have matching symbols for it.  Checksym

                   tries to determine as much information as possible to

                   in finding good symbols.  If a module name can not be

                   determined (mostly with modules that only use PDB files),

                   the module will be listed as "IMAGE<Virtual Address>".

   -MATCH <Text> : Collect Modules that match text only

                   This option allows you to restrict searching/collection to

                   include only those modules that match the provided text.


Next Pane Command
Output Options

-B <Symbol Dir> : Build a Symbol Tree of Matching Symbols

                   This option will create a new symbol tree for ALL matching

                   symbols that are found through the verification process

                   (-v option). This option is particularly useful when used

                   with the -Y option when many symbol paths are specified

                   and you want to build a single tree for a debug.

-PERF : Display Preferred Load Address vs Actual Load Address

                   There is a performance penalty when a module does not load

                   at it's preferred load address.  Tools like REBASE.EXE can

                   be used to change the preferred load address.  After using

                   REBASE.EXE, BIND.EXE can be used to fixup import tables for

                   more performance improvements.

   -Q[<blank>|2] : Quiet modes (no screen output, or minimal screen output)

                   The default behavior is to print out the data to the

                   console window (stdout).  If the process terminates with an

                   error, it will print out these (overriding -Q).

                   -Q2       : This option prints out a module ONLY if a symbol

                               problem exists.  (Not completely quiet mode!)

-O[<blank>|1|2] <File Path> : Output Collected Module Information To a CSV File

                   For this file to to be used as input (-I) to verify good

                   symbols for this system, the -S option should also be used.

                   -O or -O1 : (Default)  This output mode requires that the

                               file does not exist.

                   -O2       : Specifying a -O2 will allow the output file

                               to be OVERWRITTEN if it exists.

-T : Task List Output

                   Prints out a task list on the local machine (similar to the

                   TLIST utility).  This option implies the use of -P (querying

                   the local system for active processes.  You can provide the

                   -P command explicitly (if you want to provide an argument,

                   for instance).  If -P is not specified explicitly, then it

                   defaults to -P *.  Also, -T overrides -Q since TLIST

                   behavior is to print to the console window.


Prev Pane Command
Information Checking Options

-S : Collect/Display Symbol Information From Modules

                   This option is used to indicate that symbol information

                   should be collected and displayed from every module analyzed.

                   In order to verify proper symbols, symbol information must

                   be gathered.  It is possible to collect symbol information

                   without verifying it.  This case is usually used with the -O

                   option to produce a saved CheckSym generated CSV file.

                   Omitting -S and -V could direct CheckSym to collect only

                   version information (if -R is specified), or no information

                   (if no information checking options are specified.

-R : Collect Version and File-System Information From Modules

                   This option requests checksym to collect the following

                   information from the file-system and version information

                   structure (if any):

                        File Version

                        Company Name

                        File Description

                        File Size (bytes)

                        File Date/Time

 -V[<blank>|1|2] : Verify Symbols for Modules

                   This option uses the symbol information gathered (-S option)

                   to verify that proper symbols exist (as found along the

                   symbol path.  Use of -V implies -S when module collection is

                   initiated.  There are different levels of symbol

                   verification:

                   -V or -V1 : (Default) This treats symbol files that match

                               the module's time/date stamp, but have an wrong

                               checksum or size of image as valid symbols.  This

                               is the default behavior and these symbols are

                               typically valid.  (Localization processes often

                               cause the size of image and/or checksum to be altered

                               but the symbol file is still valid.

                   -V2       : Only if checksum, size of image AND time/date stamp

                               match is the symbol considered valid.

-Y[I][<blank>|1|2] <Symbol Path> : Verify Symbols Using This Symbol Path

                   This is a semi-colon separated search path for looking for

                   symbols.  This path is searched with the -V option.  -Y now

                   supports the use of SYMSRV for symbol searching.  An

                   example usage would be a symbol path that resembles:

                   -Y SYMSRV*SYMSRV.DLL*\\SYMBOLS\SYMBOLS

                   Or this more compact form which expands to the one above:

                   -Y SRV*\\SYMBOLS\SYMBOLS

                   The default value is %systemroot%\symbols

                   -YI       : This option allows you to specify a text file

                               which contains the symbol paths you would like

                               to use.  Many people create a text file of their

                               favorite symbol paths, use this option to specify

                               that file.

                               Example:

                               -YI C:\temp\MySymbolPaths.txt

                               You can specify modifers to -YI but they must follow

                               the -YI option (i.e. -YI2 for recursion of all the

                               paths specified by the symbol path file).

                   -Y        : (Default) This searches for symbols in the

                               symbol paths using the behavior typical of the

                               debuggers.

                   NOTE: For the options below you can add the numbers together

                         to specify combinations of options.  -Y7 would be all of

                         the combinations for example.

                   -Y1       : This searches for symbols using only the provided

                               symbol path and does not use other locations found

                               such as those found in the Debug Directories section

                               of the PE image.

                   -Y2       : This searches for symbols in the symbol paths

                               provided using a recursive search algorithm.

                               This option is most useful when used with -B to

                               build a symbol tree.

                   -Y4       : This searches for symbols in the symbol paths

                               but for DBG files does NOT use the entry in

                               the MISC section of the image.

-EXEPATH <Exe Path> : Verify Symbols for Modules Using Executable Path

                   Minidump files require that the actual matching binary images

                   are present.  If a dumpfile is being opened and an EXEPATH is

                   is not specified, Checksym will default the EXEPATH to the

                   symbol path.

-NOISY : Output internal paths used during search for symbols

-SOURCE : Symbols with Source are PREFERRED (search behavior change)

                   This option directs CheckSym to continue searching until a

                   symbol is found with Source Info if possible.  Normally,

                   CheckSym terminates searching when any matching symbol is

                   found.  This option forces CheckSym to continue searching

                   for source enabled symbols which can result in longer

                   searches potentially.

-SOURCEONLY : Symbols with Source are REQUIRED (search behavior change)

                   This option directs CheckSym to continue searching until a

                   symbol is found with Source Info.  A symbol is considered

                   a match only if it also contains Source Info.

-NOSOURCE : Symbols with Source are NOT ALLOWED (search behavior change)

                   This option directs CheckSym to continue searching until a

                   symbol is found with no Source Info.  A symbol is considered

                   a match only if it does NOT contain Source Info.

                   Using this option with -B can be a useful way to create a symbol

                   tree for customers since it would limit the symbols to those

                   without Source Info (proprietary information).


CheckSym Help

This version is supported for Windows NT 4.0, Windows 2000 and Windows XP

DESCRIPTION:

This program can be used to verify that you have proper symbol files

(*.DBG and/or *.PDB) on your system for the processes you have running, and

for symbol files on your filesystem.  This program can also be used to

collect information regarding these modules and output this to a file.

The output file can then be given to another party (Microsoft Product

Support Services) where they can use the file to verify that they have

proper symbols for debugging your environment.

Obtaining online help:

CHECKSYM -?      : Simple help usage

CHECKSYM -???    : Complete help usage (this screen)

Usage:

CHECKSYM [COLLECTION OPTIONS] [INFORMATION CHECKING OPTIONS] [OUTPUT OPTIONS]

***** COLLECTION OPTIONS *****

At least one collection option must be specified.  The following options are

currently supported.

   -P <Argument> : Collect Information From Running Processes

                   When used in conjunction with -O the output file will

                   contain information about your running system.  This

                   operation should not interfere with the operation of

                   running processes.

                   <Argument> = [ * | Process ID (pid) | Process Name ]

                   Multiple arguments can be combined together to query

                   multiple PIDs or processes.  Separate each argument with

                   a semi-colon.

                   For example,

                   -P 123;234;NOTEPAD.EXE;CMD.EXE

                   would return only these four process matches.

                   To query all running processes, specify the wildcard

                   character '*'.  To specify a specific process, you can

                   provide the Process ID (as a decimal value), or the Process

                   Name (eg. notepad.exe).  If you use the Process Name as the

                   argument, and multiple instances of that process are

                   running they will all be inspected.

-D : Collect Information from Running Device Drivers

                   This option will obtain information for all device drivers

                   (*.SYS files) running on the current system.

-F[<blank>|1|2] <File/Dir Path>: Collect Information From File System

                   This option will allow you to obtain module information

                   for modules on the specified path.  Multiple paths may be

                   provided, separated by semicolons.  This input method is

                   useful for situations where the module(s) is not loaded by

                   an active process.  (Eg. Perhaps a process is unable to start

                   or perhaps you simply want to collect information.)

                   about files from a particular directory location.)

                   -F or -F1 : (Default) A file or directory may be provided.  If

                               a file is specified, it is evaluted.  If a directory

                               is provided then the files matching any provided wild-

                               cards are searched.

                   -F2       : Same as -F except recursion will be used.

                   PSEUDO-ENVIRONMENT VARIABLES

                   Checksym supports environment variables used where ever paths

                   are provided (i.e. %systemroot% is a valid environment variable).

                   Checksym also supports a limited set of "pseudo-environment"

                   variables which you can provide in an location a normal environment

                   variable is allowed.  These pseudo-environment variables expand

                   into the appropriate installation directory for the product they

                   are associated with.

                   Here are all the pseudo-environment variables currently supported:

                   %EXCHSRVR%	= Microsoft Exchange Server

                   %IE%	= Microsoft Internet Explorer

                   %INETSRV%	= Microsoft Internet Information Services

                   %OFFICE2000%	= Microsoft Office 2000

                   %OFFICEXP%	= Microsoft Office XP

                   %SMSSERVER%	= Microsoft SMS Server

                   %SNASERVER%	= Microsoft SNA Server

                   %SQLSERVER%	= Microsoft SQL Server

                   %WSPSRV%	= Microsoft Winsock Proxy Server

  -I <File Path> : Collect Information from a Saved Checksym Generated CSV File

                   This input method is useful when you want to evaluate

                   whether you have proper symbols for modules on a different

                   system.  Most commonly this is useful for preparing to do a

                   remote debug of a remote system.  The use of -I prohibits

                   the use of other collection options.

  -Z <File Path> : Collect Information from a DMP File

                   This input method is useful when you have a DMP file and

                   to ensure that you have matching symbols for it.  Checksym

                   tries to determine as much information as possible to

                   in finding good symbols.  If a module name can not be

                   determined (mostly with modules that only use PDB files),

                   the module will be listed as "IMAGE<Virtual Address>".

   -MATCH <Text> : Collect Modules that match text only

                   This option allows you to restrict searching/collection to

                   include only those modules that match the provided text.

***** INFORMATION CHECKING OPTIONS *****

              -S : Collect/Display Symbol Information From Modules

                   This option is used to indicate that symbol information

                   should be collected and displayed from every module analyzed.

                   In order to verify proper symbols, symbol information must

                   be gathered.  It is possible to collect symbol information

                   without verifying it.  This case is usually used with the -O

                   option to produce a saved CheckSym generated CSV file.

                   Omitting -S and -V could direct CheckSym to collect only

                   version information (if -R is specified), or no information

                   (if no information checking options are specified.

              -R : Collect Version and File-System Information From Modules

                   This option requests checksym to collect the following

                   information from the file-system and version information

                   structure (if any):

                        File Version

                        Company Name

                        File Description

                        File Size (bytes)

                        File Date/Time

 -V[<blank>|1|2] : Verify Symbols for Modules

                   This option uses the symbol information gathered (-S option)

                   to verify that proper symbols exist (as found along the

                   symbol path.  Use of -V implies -S when module collection is

                   initiated.  There are different levels of symbol

                   verification:

                   -V or -V1 : (Default) This treats symbol files that match

                               the module's time/date stamp, but have an wrong

                               checksum or size of image as valid symbols.  This

                               is the default behavior and these symbols are

                               typically valid.  (Localization processes often

                               cause the size of image and/or checksum to be altered

                               but the symbol file is still valid.

                   -V2       : Only if checksum, size of image AND time/date stamp

                               match is the symbol considered valid.

-Y[I][<blank>|1|2] <Symbol Path> : Verify Symbols Using This Symbol Path

                   This is a semi-colon separated search path for looking for

                   symbols.  This path is searched with the -V option.  -Y now

                   supports the use of SYMSRV for symbol searching.  An

                   example usage would be a symbol path that resembles:

                   -Y SYMSRV*SYMSRV.DLL*\\SYMBOLS\SYMBOLS

                   Or this more compact form which expands to the one above:

                   -Y SRV*\\SYMBOLS\SYMBOLS

                   The default value is %systemroot%\symbols

                   -YI       : This option allows you to specify a text file

                               which contains the symbol paths you would like

                               to use.  Many people create a text file of their

                               favorite symbol paths, use this option to specify

                               that file.

                               Example:

                               -YI C:\temp\MySymbolPaths.txt

                               You can specify modifers to -YI but they must follow

                               the -YI option (i.e. -YI2 for recursion of all the

                               paths specified by the symbol path file).

                   -Y        : (Default) This searches for symbols in the

                               symbol paths using the behavior typical of the

                               debuggers.

                   NOTE: For the options below you can add the numbers together

                         to specify combinations of options.  -Y7 would be all of

                         the combinations for example.

                   -Y1       : This searches for symbols using only the provided

                               symbol path and does not use other locations found

                               such as those found in the Debug Directories section

                               of the PE image.

                   -Y2       : This searches for symbols in the symbol paths

                               provided using a recursive search algorithm.

                               This option is most useful when used with -B to

                               build a symbol tree.

                   -Y4       : This searches for symbols in the symbol paths

                               but for DBG files does NOT use the entry in

                               the MISC section of the image.

-EXEPATH <Exe Path> : Verify Symbols for Modules Using Executable Path

                   Minidump files require that the actual matching binary images

                   are present.  If a dumpfile is being opened and an EXEPATH is

                   is not specified, Checksym will default the EXEPATH to the

                   symbol path.

          -NOISY : Output internal paths used during search for symbols

         -SOURCE : Symbols with Source are PREFERRED (search behavior change)

                   This option directs CheckSym to continue searching until a

                   symbol is found with Source Info if possible.  Normally,

                   CheckSym terminates searching when any matching symbol is

                   found.  This option forces CheckSym to continue searching

                   for source enabled symbols which can result in longer

                   searches potentially.

     -SOURCEONLY : Symbols with Source are REQUIRED (search behavior change)

                   This option directs CheckSym to continue searching until a

                   symbol is found with Source Info.  A symbol is considered

                   a match only if it also contains Source Info.

       -NOSOURCE : Symbols with Source are NOT ALLOWED (search behavior change)

                   This option directs CheckSym to continue searching until a

                   symbol is found with no Source Info.  A symbol is considered

                   a match only if it does NOT contain Source Info.

                   Using this option with -B can be a useful way to create a symbol

                   tree for customers since it would limit the symbols to those

                   without Source Info (proprietary information).

***** OUTPUT OPTIONS *****

 -B <Symbol Dir> : Build a Symbol Tree of Matching Symbols

                   This option will create a new symbol tree for ALL matching

                   symbols that are found through the verification process

                   (-v option). This option is particularly useful when used

                   with the -Y option when many symbol paths are specified

                   and you want to build a single tree for a debug.

           -PERF : Display Preferred Load Address vs Actual Load Address

                   There is a performance penalty when a module does not load

                   at it's preferred load address.  Tools like REBASE.EXE can

                   be used to change the preferred load address.  After using

                   REBASE.EXE, BIND.EXE can be used to fixup import tables for

                   more performance improvements.

   -Q[<blank>|2] : Quiet modes (no screen output, or minimal screen output)

                   The default behavior is to print out the data to the

                   console window (stdout).  If the process terminates with an

                   error, it will print out these (overriding -Q).

                   -Q2       : This option prints out a module ONLY if a symbol

                               problem exists.  (Not completely quiet mode!)

-O[<blank>|1|2] <File Path> : Output Collected Module Information To a CSV File

                   For this file to to be used as input (-I) to verify good

                   symbols for this system, the -S option should also be used.

                   -O or -O1 : (Default)  This output mode requires that the

                               file does not exist.

                   -O2       : Specifying a -O2 will allow the output file

                               to be OVERWRITTEN if it exists.

              -T : Task List Output

                   Prints out a task list on the local machine (similar to the

                   TLIST utility).  This option implies the use of -P (querying

                   the local system for active processes.  You can provide the

                   -P command explicitly (if you want to provide an argument,

                   for instance).  If -P is not specified explicitly, then it

                   defaults to -P *.  Also, -T overrides -Q since TLIST

                   behavior is to print to the console window.

***** TYPICAL USAGE EXAMPLES *****

You want to verify the symbols for files in a directory (%SYSTEMROOT%\SYSTEM32)

in the default symbol directory (%SYSTEMROOT%\SYMBOLS)

     CHECKSYM -F %SYSTEMROOT%\SYSTEM32 -V

You want to do the same search, but for only executables...

     CHECKSYM -F %SYSTEMROOT%\SYSTEM32\*.EXE -V

You want to search a directory using multiple symbol paths...

     CHECKSYM -F %SYSTEMROOT%\SYSTEM32\ -V -Y V:\nt40sp4;V:\nt40rtm

You want to know what modules are loaded for a process (and the path to each)

Start NOTEPAD.EXE, and then type:

     CHECKSYM -P NOTEPAD.EXE

You want to know if you have good symbols for a process (notepad.exe).

     CHECKSYM -P NOTEPAD.EXE -V

You want to know the file version for every module loaded by a process.

     CHECKSYM -P NOTEPAD.EXE -R

You want to know if you have good symbols for ALL processes on your machine.

     CHECKSYM -P * -V

***** ADVANCED USAGE EXAMPLES *****

You are going to prepare to debug a remote system, and you want to ensure

that you have good symbols locally for debugging the remote system.  You want

to verify this prior to initiating the debug session.

Use checksym twice, once on the remote system to gather information and create

an output file, and then once on your system using the output file created

as an input argument.

For example, run this on the remote system

     CHECKSYM -P * -S -R -O C:\TEMP\PROCESSES.CSV

The C:\TEMP\PROCESSES.CSV file will contain a wealth of information about

the processes that were running, and the modules loaded by every process.

Now, get the output file from the remote system, and copy it locally.  Then

run CHECKSYM again, using the file as an input argument...

     CHECKSYM -I C:\TEMP\PROCESSES.CSV -V

Another useful option is -B (build a symbol tree).  It allows you to update

or create a symbol tree that contains matching symbols.  If you have to use

many symbol paths in order to have correct symbols available to a debugger,

can use the -B option to build a single symbol tree to simplify debugging.

     CHECKSYM -P * -B C:\MySymbols -V -Y V:\Nt4;V:\Nt4Sp6a;V:\NtHotfixes


No Help Available

No help is available for this area of the window.


No Help Available

No help is available for this message box.

<< If you wish to author help specific to each message box prompt, then remove the AFX_HIDP_xxx values from the [ALIAS] section of your .HPJ file, and author a topic for each AFX_HIDP_xxx value.  For example, AFX_HIDP_INVALID_FILENAME is the help topic for the Invalid Filename message box. >>


File Print command
Print command (File menu)

Use this command to print a document.   This command presents a Print dialog box, where you may specify the range of pages to be printed, the number of copies, the destination printer, and other printer setup options.

Shortcuts

Toolbar:

Keys:	CTRL+P


Print dialog box

The following options allow you to specify how the document should be printed:

Printer

This is the active printer and printer connection.  Choose the Setup option to change the printer and printer connection.

Setup

Displays a Print Setup dialog box, so  you can select a printer and printer connection.

Print Range

Specify the pages you want to print:

All	Prints the entire document.
Selection	Prints the currently selected text.
Pages	Prints the range of pages you specify in the From and To boxes.
Copies

Specify the number of copies you want to print for the above page range.

Collate Copies

Prints copies in page number order, instead of separated multiple copies of each page.

Print Quality

Select the quality of the printing.  Generally, lower quality printing takes less time to produce.


Print Progress Dialog

The Printing dialog box is shown during the time that <<YourApp>> is sending output to the printer.  The page number indicates the progress of the printing.

To abort printing, choose Cancel.


File Print Preview command
Print Preview command (File menu)

Use this command to display the active document as it would appear when printed.  When you choose this command, the main window will be replaced with a print preview window in which one or two pages will be displayed in their printed format.  The print preview toolbar offers you options to view either one or two pages at a time; move back and forth through the document; zoom in and out of pages; and initiate a print job.


Print Preview toolbar

The print preview toolbar offers you the following options:

Print

Bring up the print dialog box, to start a print job.

Next Page

Preview the next printed page.

Prev Page

Preview the previous printed page.

One Page / Two Page

Preview one or two printed pages at a time.

Zoom In

Take a closer look at the printed page.

Zoom Out

Take a larger look at the printed page.

Close

Return from print preview to the editing window.


File Print Setup command
Print Setup command (File menu)

Use this command to select a printer and a printer connection.  This command presents a Print Setup dialog box, where you specify the printer and its connection.


Print Setup dialog box

The following options allow you to select the destination printer and its connection.

Printer

Select the printer you want to use.  Choose the Default Printer; or choose the Specific Printer option and select one of the current installed printers shown in the box.  You install printers and configure ports using the Windows Control Panel.

Orientation

Choose Portrait or Landscape.

Paper Size

Select the size of paper that the document is to be printed on.

Paper Source

Some printers offer multiple trays for different paper sources.  Specify the tray here.

Options

Displays a dialog box where you can make additional choices about printing, specific to the type of printer you have selected.

Network...

Choose this button to connect to a network location, assigning it a new drive letter.


File Page Setup Command
Page Setup command (File menu)

<< Write application-specific help here. >>