|
|
1.1 ! root 1: Differences Document for the ! 2: Microsoft (R) CodeView (R) Debugger ! 3: for Version 2.3 ! 4: ! 5: (C) Copyright Microsoft Corporation, 1989 ! 6: ! 7: ! 8: This file contains release notes for the Microsoft (R) CodeView (R), ! 9: and notes differences between Version 2.3 and 2.2 of the debugger. ! 10: ! 11: ! 12: ===========================< Contents >========================== ! 13: ! 14: This file has two parts. ! 15: ! 16: Part Note ! 17: ---- ---- ! 18: 1 Improved general capabilities of the debugger ! 19: 2 Debugging child processes ! 20: 3 Viewing process status ! 21: 4 Switching to a child processes ! 22: ! 23: ! 24: =========< Part 1: Improved Capabilities of the Debugger >======= ! 25: ! 26: ! 27: While running under Version 2.3 of CodeView the program being debugged ! 28: has complete access to environment variables, including the PATH ! 29: variable. Previous versions of CodeView did not guarantee access to the ! 30: environment. ! 31: ! 32: Version 2.3 of CodeView is VIO-window compatible, and can therefore ! 33: run as a Presentation Manager application under OS/2 systems. ! 34: ! 35: ! 36: ============< Part 2: Debugging Multiple Processes >============= ! 37: ! 38: ! 39: To enable debugging of multiple processes, you must first start up ! 40: CodeView with the /O (offspring) option. The syntax of this option ! 41: is simple, as it takes no arguments. ! 42: ! 43: If you do not use the /O option, CodeView lets your program spawn new ! 44: processes, but you will not be able to view or trace through these ! 45: processes. They run in the background as far as CodeView is concerned. ! 46: ! 47: For example, to debug multiple processes of the program SPACEMAN.EXE you ! 48: would use the following command: ! 49: ! 50: CVP /O SPACEMAN ! 51: ! 52: The /O option has two limitations: ! 53: ! 54: 1. You must have OS/2 Version 1.1 or later to use it. ! 55: ! 56: 2. This option is incompatible with the /2 option. ! 57: ! 58: The rest of this section assumes that you have successfully started ! 59: CodeView with the /O option. ! 60: ! 61: Every time your program executes a line of code that spawns a child ! 62: process, CodeView responds by displaying the process ID number (Pid) and ! 63: asking if you wish to debug the child process. The message displayed is ! 64: similar to the following: ! 65: ! 66: Pid 24 started. Do you wish to debug (y/n)? ! 67: ! 68: To debug the child process, type Y and then press ENTER. Type any other ! 69: letter for no. CodeView takes a different course of action depending on ! 70: your response: ! 71: ! 72: 1. If you respond yes (Y), CodeView spawns a new CodeView process. This ! 73: process controls execution of your program's child process. Each ! 74: instance of CodeView spawned in this way becomes a separate debugging ! 75: session. ! 76: ! 77: A new process runs in the same screen group as its parent process ! 78: (unless you call the DosStartSession system function). Using CodeView ! 79: does not change this. However, each new instance of CodeView always ! 80: runs in its own screen group. Since OS/2 supports a maximum of 16 ! 81: screen groups, the number of child processes that you can debug at ! 82: one time is limited. ! 83: ! 84: 2. If you respond no (N), CodeView lets the program spawn the child process. ! 85: However, you will not be able to control or trace the child process ! 86: with CodeView. The child process is active but not accessible to ! 87: CodeView commands. ! 88: ! 89: You can move between different CodeView processes in the following two ! 90: ways: by using the OS/2 Session Manager or the Process command (|). The ! 91: Process command, in turn, has two forms. You can use this command to ! 92: view status of child processes or to switch directly to the debugging ! 93: session of the child process. ! 94: ! 95: You may need to make note of process ID numbers when CodeView spawns a ! 96: process. CodeView identifies multiple processes only by their ID ! 97: numbers. ! 98: ! 99: ! 100: ==============< Part 3: Viewing Process Status >================ ! 101: ! 102: ! 103: To view the status of the child processes (of the current process), ! 104: enter the Process command followed by no arguments: ! 105: ! 106: | ! 107: ! 108: CodeView responds by displaying three fields: process ID number, session ! 109: (screen group) ID number, and yes or no, depending on whether or not ! 110: each process has its own instance of CodeView. The following example ! 111: shows a sample process status for a process with three children: ! 112: ! 113: 001>| ! 114: ProcessID SessionID Debugging ! 115: 00024 00006 Yes ! 116: 00026 00006 Yes ! 117: 00028 00006 No ! 118: ! 119: In the example above, only processes 24 and 26 can be debugged. Each ! 120: of these processes corresponds to a different instance of CodeView, ! 121: and each instance runs in a separate screen group. Process 28 is active ! 122: but cannot be debugged. ! 123: ! 124: ! 125: ============< Part 4: Debugging Multiple Processes >============= ! 126: ! 127: ! 128: If a child process can be debugged, you can switch to that process ! 129: directly by using the Process command. Use of this command accomplishes ! 130: the same end as using the Session Manager but is more direct. ! 131: ! 132: To switch to the debugging session for a child process, enter the ! 133: Process command with the following syntax: ! 134: ! 135: | <processID> ! 136: ! 137: in which <processID> is the process ID (Pid) of the process you wish to ! 138: debug. ! 139: ! 140: The Process command only works with direct children. In other words, you ! 141: can spawn a child which in turns spawns another child. The Process ! 142: command does not give you direct access to the <169>grandchild.<170> ! 143: Instead, you must switch to the intermediate parent. ! 144: ! 145: To return to debugging a parent or grandparent, you must use the OS/2 ! 146: Session Manager.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.