HEXWORDS(1)

NAME
hexwords - extracts any words from a file that can be written as hex numbers

SYNOPSIS
hexwords [options] [dictfile]

DESCRIPTION
The hexwords command is a little tool that can be used to generate hexadecimal constants from a dictionary of known words. Such numerical constants can be used in source files for a variety of debugging problems, and problems with uninitialised variables are especially relevant since these special numbers will stand out if seen from within a debugger. For example, here are some common (and some not-so-common) 32-bit hexadecimal constants that can be used as debugging aids:
word | hex constant
addedbad | 0xaddedbad
allocate | 0xa110ca7e
badlabel | 0xbad1abe1
baseball | 0xba5eba11
codebabe | 0xc0debabe
codedbad | 0xc0dedbad
deadbeef | 0xdeadbeef
deadcode | 0xdeadc0de
failsafe | 0xfa115afe
feedface | 0xfeedface
freedata | 0xf4eeda7a
goodcode | 0x600dc0de

As can be seen above, many decimal digits can be used to represent the letters that they most closely resemble, along with the hexadecimal digits A through F. This provides a much larger selection of words that can be matched, although the digits 3 and 8 cannot be used due to the lack of any similar-looking letters. The digits and their corresponding letters are given in the following table.
digit | letter
0 | O, o or Q
1 | I, i or l
2 | Z or z
3 | -
4 | q or R
5 | S or s
6 | G
7 | J or T
8 | -
9 | g
A-F | A-F
a-f | a-f

The dictfile argument must be a valid dictionary filename but if dictfile is omitted then hexwords will use /usr/dict/words as the name of the dictionary file to use. If that cannot be found then hexwords will try /usr/lib/dict/words and /usr/share/dict/words. The dictionary file must be a plain text file that contains one word per line, otherwise few to no words will be matched.

The hexwords command currently makes use of several UNIX text processing commands in order to extract the words and their hexadecimal equivalents. As a result, the hexwords command is only likely to work on UNIX platforms or on systems which have the necessary commands installed.

OPTIONS

--help [-h]
    Displays a quick-reference option summary.

--match <exact|lower|upper|any> [-m]
    Sets the type of case-sensitivity to use. A setting of exact performs a case-sensitive comparison of all of the words in the dictionary file and the hexadecimal digits, whereas a setting of any does not. The lower and upper settings convert the words in the dictionary file to lower and upper case respectively before performing a case-sensitive comparison. The default case-sensitivity is exact.

--maximum <count> [-u]
    Sets the maximum number of letters to match. None of the hexadecimal numbers displayed will have any more digits than this. The default is 8.

--minimum <count> [-l]
    Sets the minimum number of letters to match. None of the hexadecimal numbers displayed will have any less digits than this. The default is 4.

--version [-V]
    Displays the version number of the hexwords command.

SEE ALSO
mpatrol(1), mprof(1), mptrace(1), mleak(1), mpsym(1), mpedit(1), libmpatrol(3), libmpalloc(3).

The mpatrol manual and reference card.

http://www.cbmamiga.demon.co.uk/mpatrol/

AUTHOR
Graeme S. Roy <graeme.roy@analog.com>

COPYRIGHT
Copyright (C) 1997-2002 Graeme S. Roy <graeme.roy@analog.com>

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.