| 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 | ---------------------------------------------- |