PROCEDURE ram$summarize_debugger_dumps, summarize_debugger_dumps, sumdd (
  output, o: any of
      file
    anyend = $output
  status)

  catalog_contents = $catalog_contents($system.dumps include_files)
  put_line ' Summary of Debugger Dumps in '//$string($fname('$system.dumps'))//':' output=output
  put_line ' ' output=output.$eoi

  create_variable ignore_status k=status

  FOR each catalog_file IN catalog_contents DO
    dump_files = $file_cycles($fname('$system.dumps.'//catalog_file) paths)

    FOR EACH dump_file IN dump_files DO
      EDIT_FILE dump_file prolog=$null output=$null status=ignore_status
        create_variable edit_status k=status

        position_cursor l=first status=edit_status
        IF NOT edit_status.normal THEN

" Somehow we attempted to edit a non-editable file.

          QUIT no edit_status "editor
          CYCLE
        IFEND

        locate_text 'System Core Debugger Dump' lines=all number=1 status=edit_status
        IF NOT edit_status.normal THEN

" This file was not produced by the System Core Debugger.

          QUIT no edit_status "editor
          CYCLE
        IFEND

" Describe the dump file.

        output_string = ' ' // dump_file
        put_line output_string output=output.$eoi

" Describe the contents of the file.

        locate_text 'OS Version: ' lines=all number=1 status=edit_status
        IF edit_status.normal THEN
          output_string = '    ' // $line_text
          put_line output_string output=output.$eoi
        IFEND

        position_cursor l=first
        locate_text 'Creation Date: ' lines=all number=1 status=edit_status
        IF edit_status.normal THEN
          output_string = '    ' // $line_text
          put_line output_string output=output.$eoi
        IFEND

        position_cursor l=first
        locate_text 'Creation Time: ' lines=all number=1 status=edit_status
        IF edit_status.normal THEN
          output_string = '    ' // $line_text
          put_line output_string output=output.$eoi
        IFEND

        position_cursor l=first
        locate_text 'System Supplied Job Name: ' lines=all number=1 status=edit_status
        IF edit_status.normal THEN
          output_string = '    ' // $line_text
          put_line output_string output=output.$eoi
        IFEND

        position_cursor l=first
        locate_text 'User Supplied Job Name: ' lines=all number=1 status=edit_status
        IF edit_status.normal THEN
          output_string = '    ' // $line_text
          put_line output_string output=output.$eoi
        IFEND

        position_cursor l=first
        locate_text 'Task Name: ' lines=all number=1 status=edit_status
        IF edit_status.normal THEN
          output_string = '    ' // $line_text
          put_line output_string output=output.$eoi
        IFEND

        position_cursor l=first
        locate_text 'Job Template Name: ' lines=all number=1 status=edit_status
        IF edit_status.normal THEN
          output_string = '    ' // $line_text
          put_line output_string output=output.$eoi
        IFEND

        position_cursor l=first
        locate_text 'Serial Number: ' lines=all number=1 status=edit_status
        IF edit_status.normal THEN
          output_string = '    ' // $line_text
          put_line output_string output=output.$eoi
        IFEND

      locate_block: ..
        BLOCK
          edit_status.normal=true
          position_cursor line=first
          locate_text 'DUMPJOB Dump of Job Task: ' lines=all number=1 status=edit_status
          IF edit_status.normal THEN

" This file was produced by a DUMPJOB command.

            output_string = '    Dump Contents = DUMPJOB command dump'
            put_line output_string output=output.$eoi
            EXIT locate_block
          IFEND

          edit_status.normal=true
          position_cursor line=first
          locate_text 'Automatic Task Dump' lines=all number=1 status=edit_status
          IF edit_status.normal THEN

" This file was produced by an AUTO subcommand.

            output_string = '    Dump Contents = AUTO subcommand dump'
            put_line output_string output=output.$eoi
            EXIT locate_block
          IFEND

" This file was produced by a SET_OUTPUT_DISPOSITION subcommand.

          output_string = '    Dump Contents = SET_OUTPUT_DISPOSITION subcommand dump'
          put_line output_string output=output.$eoi

        BLOCKEND locate_block

        put_line ' ' output=output.$eoi

      QUIT no "editor"

    FOREND "file reference"
  FOREND "catalog contents"

PROCEND ram$summarize_debugger_dumps
