| 3 | | '''fm/2''' writes all popup error messages stderr. To capture these messages, start '''fm/2''' with |
| | 2 | == Issue Reporting: == |
| | 3 | |
| | 4 | When reporting issues to the FM2 newsgroups, please refrain from using general subjects. |
| | 5 | |
| | 6 | '''Example:''' Another trap with the latest source code. |
| | 7 | |
| | 8 | Use a more descriptive subject such as |
| | 9 | |
| | 10 | Drive bar trap at fm3dll 0002:00046a01 with changeset 883. |
| | 11 | |
| | 12 | This tells us where the exception occurred and for which current source the exception occurred. It gives us a basic idea of what the code was doing at the time of the trap. It is also not an inordinately long subject line. |
| | 13 | |
| | 14 | Next, give a detailed description of what you were doing at the time of the trap. Don't give a general description. Tell the group what you were doing step by step at the time of the trap. Is the trap reproducable? |
| | 15 | |
| | 16 | -------------------------------------------- |
| | 17 | |
| | 18 | == Capturing (Logging) Error Messages: == |
| | 19 | |
| | 20 | |
| | 21 | Fm3.exe is crashing for no apparent reason. You may be asked to capture a log and post its contents to the FM2 newsgroups. FM/2 writes all popup error messages stderr. |
| | 22 | |
| | 23 | '''Logging from Command Prompt:''' |
| | 24 | |
| | 25 | 1. From a command prompt, change to your FM2 directory. Normally, this would be |
| | 26 | |
| | 27 | |
| | 48 | |
| | 49 | |
| | 50 | '''Logging from the FM/2 Program Object:''' |
| | 51 | |
| | 52 | The default FM/2 program object propterties will have to be modified. |
| | 53 | |
| | 54 | 1. Right click on the FM/2 program object and select properties. |
| | 55 | |
| | 56 | 2. Under the Program tab, replace the "Path and file name" |
| | 57 | |
| | 58 | |
| | 59 | {{{ |
| | 60 | <drive>:\tools\fm2\fm3.exe |
| | 61 | }}} |
| | 62 | |
| | 63 | with an |
| | 64 | {{{ |
| | 65 | * |
| | 66 | }}} |
| | 67 | |
| | 68 | '''Note: Replace <drive> with the drive letter of the drive FM/2 is installed on.''' |
| | 69 | |
| | 70 | 3. Change the Parameters field from |
| | 71 | |
| | 72 | |
| | 73 | {{{ |
| | 74 | %* |
| | 75 | }}} |
| | 76 | |
| | 77 | to |
| | 78 | {{{ |
| | 79 | <drive>:\tools\fm2\fm3.exe /BC 2>>STDERR.LOG |
| | 80 | }}} |
| | 81 | |
| | 82 | |
| | 83 | '''Note: Replace <drive> with the drive letter of the drive FM/2 is installed on.''' |
| | 84 | |
| | 85 | 4. Close Properties and double click program object to execute. |
| | 86 | |
| | 87 | |
| | 88 | When FM/2 terminates for no apparent reason, locate the fm3.log file in the fm2 directory. Copy the contents to the fm2user newsgroup. |
| | 89 | |
| | 90 | ------------------------------ |
| | 91 | |
| | 92 | == Creating Dump Files: == |
| | 93 | |
| | 94 | |
| | 95 | Based on what the log file indicates, you may be asked to do a dump file. |
| | 96 | |
| | 97 | 1. Locate the fm2dump.cmd file in the fm2 directory. |
| | 98 | |
| | 99 | 2. With a text editor, find and edit the following lines. |
| | 100 | |
| | 101 | :: Edit this to point to existing directory on drive with sufficient free space |
| | 102 | |
| | 103 | {{{ |
| | 104 | set D=U:\Dump |
| | 105 | }}} |
| | 106 | |
| | 107 | |
| | 108 | :: Edit this to name process to be dumped - .exe is optional |
| | 109 | |
| | 110 | {{{ |
| | 111 | set P=fm3 |
| | 112 | }}} |
| | 113 | |
| | 114 | |
| | 115 | 3. Save the modified fm2dump.cmd. |
| | 116 | |
| | 117 | 4. Start the dump facility (fm2dump.cmd) from within the fm2 directory at command prompt. |
| | 118 | |
| | 119 | 5. Start FM/2. |
| | 120 | |
| | 121 | 6. When problem (issue) occurs, change to the directory where the dump file is stored. |
| | 122 | |
| | 123 | 7. Zip up the dump file along with all the *.map files from the sources used to build FM2 and the rest of it files. |
| | 124 | |
| | 125 | a. Name the zip file so it is easy to know what the zip contains and who it is from. |
| | 126 | |
| | 127 | '''example:''' dwg_fm2dump_drivebar_2007_09_10.zip |
| | 128 | |
| | 129 | This example tells us who is is from, that is is a FM/2 dump file, where the problem occurred, and the date of the dump file. |
| | 130 | |
| | 131 | 8. Upload the zip file to Netlabs Incoming. |
| | 132 | |
| | 133 | [ftp:\\ftp.netlabs.org\incoming] |
| | 134 | |
| | 135 | 9. Notify the development group after the file has been uploaded to Netlabs Incoming. |
| | 136 | |
| | 137 | --------------------------------- |
| | 138 | |
| | 139 | == Debugging: == |
| | 140 | |
| | 141 | It is best to build FM/2 with the debug files and then install for debugging. Refer to [wiki:BuildingFm2 Building FileManager/2 (FM/2)][[BR]] on building a FM/2 debugged version. Then |
| | 142 | |
| | 143 | 1. Open to a full screen session (command prompt) in the directory where fm3.exe is to be run from. |
| | 144 | |
| | 145 | 2. Start the Open Watcom debugger with |
| | 146 | |
| | 147 | |
| | 148 | {{{ |
| | 149 | wd fm3.exe |
| | 150 | }}} |
| | 151 | |
| | 152 | |
| | 153 | 3. From the modules window on the lower right, select the file that needs to be debugged. |
| | 154 | |
| | 155 | '''Example:''' Defview |
| | 156 | |
| | 157 | '''Note: The modules window will not list Defview or the file one needs to debug as one of its choices if the needed file was not built with debug info.''' |
| | 158 | |
| | 159 | This can be easily fixed by switching the Fm2\dll directory and running the following from a command prompt. |
| | 160 | |
| | 161 | |
| | 162 | {{{ |
| | 163 | set debug=1 |
| | 164 | wmake -a defview.obj |
| | 165 | wmake |
| | 166 | }}} |
| | 167 | |
| | 168 | |
| | 169 | Then start with step 1 again. |
| | 170 | |
| | 171 | 4. RMB and select Source. |
| | 172 | |
| | 173 | 5. From the menu, select Action -> Show -> Line and enter the a line number to begin the debug operation. |
| | 174 | |
| | 175 | 6. Continue to select Run -> Run. The debugger should continue to the next breakpoint. |
| | 176 | |
| | 177 | 7. Each time you get a breakpoint, note where the code stopped and tell the debugger to run. Eventually, you will get an exception. |
| | 178 | |
| | 179 | ---------------------------------------------- |