Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

DSTDUMP(1)                      Domain/OS SysV                      DSTDUMP(1)




NAME
     dstdump - dump a COFF file's debugging information to stdout

SYNOPSIS
     dstdump input_pathname [-m] [-b] [-s] [-l] [-u]

DESCRIPTION
     The dstdump command dumps the debug symbol information from the COFF file
     input_pathname to the standard output device.  This information includes
     the maker records in the .mir section, block records in .blocks, symbol
     records in .symbols, line number table in all records, organized by
     section and listed sequentially. If you use any of the following command
     line options, however, dstdump displays information from the specified
     sections only:

     -m          .mir (maker information)

     -b          .blocks (compilation-unit and block information)

     -s          .symbols (constant, type and variable information)

     -l          .lines (line number tables)

     -u          .unwind (unwind records)

     The dstdump command uses the command line parser, so it also accepts the
     standard command options listed in HELP CL.

     The records that dstdump displays are defined in /usr/include/mir.h (mir
     records), /usr/include/apollo/unwind.h (unwind records), and
     /usr/include/apollo/dst.h (all others).

EXAMPLES
      Display the module information from y.bin.

      $ dstdump y.bin -m

      -------------------------------------------
      SECTION ".mir": 28 (0x1C) bytes
      -------------------------------------------
      Pascal compiler 68K=>PRISM Rev 8.6, Date: Tue Dec 13 21:26:40 1988


      Display the block and symbol information from y.bin.

      $ dstdump y.bin -b -s

      -------------------------------------------
      SECTION ".blocks": 150 (0x96) bytes
      -------------------------------------------

      0x000318> (size 26) type 1: COMP_UNIT
          version            = (1, 3)
          flags              = { pc_based_locs }
          lang_type          = Pascal
          number_of_blocks   = 1
          root_block_offset  = 0x0022 -> 0x33a
          section_table      = 0x0054 -> 0x36c
          file_table         = 0x0088 -> 0x3a0
          data_size          = 0x0094 -> 0x3ac
      0x000332> (size 8) type 28: GLOBAL_NAME_TAB
          total length  = 2
              "x"

      0x00033a> (size 40) type 4: BLOCK
      { has_aux_recs }
          block_type        = program
          flags             = { }
          sibling_block     = 0 (nil)
          child_block       = 0 (nil)
          noffset           = -0x0002 -> 0x338 "x"
          symbols_start     = [3, 0x0000000e] -> 0x00000296
          n_of_code_ranges  = 1
          code_ranges:
              code_size     = 136 (0x88)
              code_start    = [4, 0x00000000]
              lines_start   = [1, 0x00000000] -> 0x00000270

      0x000362> (size 10) type 51: AUX_SRC_RANGE
          first_line = (file 1, line 1)
          last_line  = (file 1, line 17)

      0x00036c> (size 24) type 2: SECTION_TAB
          index  base address  section
             1       100058     5: .lines
             2        80230     2: .unwind
             3       100070     6: .symbols
             4        801a8     1: .text
             5       100020     3: .data

      0x000384> (size 28) type 27: STRING_TAB
          total length  = 21
              "//anode/my_dir/x.pas"

      0x0003a0> (size 12) type 3: FILE_TAB
          number_of_files = 1
          files (dtm  name_offset):
              1988/12/14 19:22:38-0x0016 -> 0x38a "//anode/my_dir/x.pas"

      0x0003ac> (size 2) type 0: PAD

      -------------------------------------------
      SECTION ".symbols": 140 (0x8c) bytes
      -------------------------------------------

      0x000288> (size 14) type 27: STRING_TAB
          total length  = 8
              "d"
              "e"
              "f"
              "x"

      0x000296> (size 20) type 46: VARIABLE
          noffset     = -0x0004 -> 0x292 "f"
          loffset     = 0x0064 -> 0x2ec  [sect(6) - 28]
          src_loc     = (file 1, line 7)
          type_desc   = real32
          attributes  = { }

      0x0002aa> (size 20) type 46: VARIABLE
          noffset     = -0x001a -> 0x290 "e"
          loffset     = 0x0055 -> 0x2f1
              location in (0154, 02a8):  .12
          src_loc     = (file 1, line 6)
          type_desc   = int32
          attributes  = { }

      0x0002be> (size 20) type 46: VARIABLE
          noffset     = -0x0030 -> 0x28e "d"
          loffset     = 0x0048 -> 0x2f8
              location in (0120, 0240):  .0
          src_loc     = (file 1, line 6)
          type_desc   = int32
          attributes  = { }

      0x0002d2> (size 20) type 48: ENTRY
          noffset          = -0x003e -> 0x294 "x"
          loffset          = 0x003a -> 0x2fe  sect(6) - 24
          src_loc          = (file 1, line 1)
          sig_desc         = 0 (nil)
          entry_number     = 0

      0x0002e6> (size 30) type 45: LOCPOOL
          total length = 24
                   2ec:  25 69 1c 0e
                   2f1:  80 28 88 44 6d 0c
                   2f8:  80 28 88 0c 10
                   2fe:  25 69 18

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026