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