| 1 | = Hints and Tips for Debugging in !MapServer = |
| 2 | |
| 3 | 1. Turn on debugging. As of MapServer 3.7 the MAP, LAYER and CLASS objects have a DEBUG keyword. If you include a DEBUG keyword in objects giving problems following by a greater than zero number, then various debugging output about the map, layer or class may be generated. The quality and quantity of debugging output varies widely. Note: Using MS4.0.1 I discovered that the correct syntax for DEBUG is simply DEBUG ON/OFF. Attempting to use DEBUG 5, etc. in a map file results in addtional bugs. Very confusing. |
| 4 | 2. Some additional debugging can be turned on from GDAL and OGR by setting the CPL_DEBUG environment variable to on. Similarly additional PROJ.4 debug info can be produced by setting PROJ_DEBUG to ON. |
| 5 | 3. Use shp2img? from the commandline to test your map file if possible. It is often much easier to debug problems without the extra complications of the web environment. |
| 6 | 4. The MS_ERRORFILE environment variable can be set to a path (or "stdout" or "stderr") to have all errors handled within MapServer to a logfile or console. This can be helpful, especially for situations where the error is otherwise ignored, or doesn't get all the way back to the client. |
| 7 | 5. For issues with PerlMapScript see: http://mapserver.gis.umn.edu/cgi-bin/wiki.pl?PerlMapScriptDebugging |
| 8 | 6. Double Check the EXTENT values in the mapfile against the known extent of the data being used. |
| 9 | 7. Review known problems and solutions in MapServer Bugzilla: http://mapserver.gis.umn.edu/bugs/index.cgi. |
| 10 | 8. Review known errors and solutions in the MapServerErrors topic. |
| 11 | |
| 12 | It is important to realize how and when environment variables are passed onto a CGI. For instance, Apache on Windows does not transfer environment variables to a CGI by default. The best thing is to add the environment variable MS_ERRORFILE in httpd.conf instead of adding a Windows system or user environment variable. |
| 13 | |
| 14 | Syntax: SetEnv MS_ERRORFILE "stderr" |