logo
Powered by QM on a Rpi server
Home
About OpenQM
Sales and Downloads
Help and Support
About
Login

KnowledgeBase 00032: Process Dump Files

Last updated: 17 Feb 2017
Applies to: All versions
Search  
Top level index       Full Index Search Tips
Previous article     Next article

This article was originally published as a Tip of the Week.

Enabling the DUMP.ON.ERROR mode of the OPTION command causes QM to create a process dump file at any error that cause a program to abort. This file will contain the complete status of all programs in the current call stack, including the content of every program variable. Process dump files are extremely useful in debugging applications. Enabling this feature on production systems provides reliable evidence for any end user bug report.


Process Dump File Location

By default, a process dump is written to a file named QMDUMP.n in the QMSYS account directory where n is the QM user number of the dumped process. The DUMPDIR configuration parameter can be used to direct the output to an alternative location.


Process Dump File Content

The process dump file contains

  • Date and time of the dump.
  • QM version number, licence details and site name.
  • User number, process id, parent user number for a phantom, user name.
  • The values of STATUS(), OS.ERROR() and several important @-variables.
  • Details of active numbered select lists.
  • Locks owned by the dumped process.
  • The program call stack. Each entry shows the program name, current line number within that program (if available), various program status flags, the GOSUB return address stack and the content of every program variable. Variables are sorted into alphabetical order with the exception of common block variables where the actual allocation order may be significant. Character string variables show only the first 10000 characters, replacing non-printing characters such as field marks with their hexadecimal representation prefixed with a backslash.
  • The content of named common blocks that have not been included in output relating to programs in the call stack.
  • A list of open files.


Forcing a Process Dump

Sometimes it is useful to force a process dump of a process that has not encountered a fatal error in order, perhaps, to track down the cause of a loop. This can be done with the PDUMP command:

   PDUMP userno


Security Issues

Because the PDUMP command can weaken security by allowing a user to dump the content of another user's process, QM includes a PDUMP configuration parameter to restrict access so that a non-administrator user can only dump processes running under the same user name.


Related Articles

None.



Please tell us if this article was helpful
Very     Slightly     Not at all
Comments
Email (optional)