When an OpenEdge process terminates abnormally, OpenEdge automatically creates a text file named protrace in the current directory. You can also force creation of the protrace file for a running program by using a command line utility (see Generate a protrace file for a running program). To analyze the contents of a protrace file, you need the assistance of Progress Software Corporation Technical Support.

The protrace file contains:

  • A stack trace of the ABL Virtual Machine (AVM) or other OpenEdge process (such as a database server or utility) that terminated abnormally
  • A stack trace of the executing ABL program itself, where applicable
  • A list of the persistent procedures or classes that are in memory, with their handle IDs
  • A list of startup parameters in effect for the ABL session
  • Symbolic information (when available)

Refer to the sample Procedures and triggers.

Sample protrace file

PROGRESS stack trace as of Tue Jan  6 13:15:16 2009
Command line arguments are
/dlc/bin/_progres -1 -p test.p 
Startup parameters:
-pf /dlc/startup.pf,(end .pf),-1,-p test.p
(1) uttrace() +0x134 from: /dlc/bin/_progres
(2) drsigs() +0x6e4 from: /dlc/bin/_progres
(3) drExitOnTerm() +0x30c from: /dlc/bin/_progres
(4) drExitOnTerm() +0x558 from: /dlc/bin/_progres
(5) _setuid() +0x60 from: /usr/lib/libc.so.1
(6) _select() +0x2ec from: /usr/lib/libc.so.1
(7) rnSocketSelect() +0x12c from: /dlc/bin/_progres
(8) wvResetCurItem() +0x1e4 from: /dlc/bin/_progres
(9) wvReadKey() +0x8c from: /dlc/bin/_progres
(10) ioHandlePause() +0x338 from: /dlc/bin/_progres
(11) iopause() +0x108 from: /dlc/bin/_progres
(12) rniopaus() +0x230 from: /dlc/bin/_progres
(13) rnexec_entry() +0x618 from: /dlc/bin/_progres
(14) rninterpret() +0x54 from: /dlc/bin/_progres
(15) rnrq() +0x120 from: /dlc/bin/_progres
(16) main() +0x410 from: /dlc/bin/_progres
(17) _start() +0x108 from: /dlc/bin/_progres
** ABL Stack Trace **
--> myproc test.p (test.p) at line 4
** Persistent procedures/Classes **