This is the README for class-dump.2.1.1.m.NIS.bs.tgz [Download] [Browse] [Up]
class-dump is a utility for examining the Objective-C segment of
Mach-O files. It generates the @interface and @protocol declarations
for classes, categories and protocols.
Version 2 is a re-implementation of Eric P. Scott's class-dump, and
works with the frameworks in Openstep 4.x.
The source compiles on Nextstep 3.3 with Foundation, Openstep, and
Rhapsody. Binary releases are available for all architectures
available on each of these:
class-dump.2.1.1.PI.bs.tar.gz (Rhapsody)
class-dump.2.1.1.m.NIS.bs.tar.gz (Openstep)
class-dump.2.1.1.NIHS.bs.tar.gz (Nextstep)
Compiling
Bison is required to compile this. There should be no warnings.
To compile under 3.3, first copy the Makefiles and PB.project from
the NS3.3 directory into the main source directory and then build it.
Differences between 2.1.0 and 2.1.1
- Compiles under Rhapsody, Openstep and Foundation based Nextstep
3.3. Tom Hageman provided the changes to get it working with
Nextstep 3.3 and compiled it quad-fat.
- Under Rhapsody, the -C option now takes egrep style regular
expressions to match categories and protocols. It will still
work as before with text strings, but you can, for example,
specify -C 'View|Window' to match classes with both strings.
Differences between 2.0 and 2.1.0
- The -a option has been split into -a, which just shows instance
variable offsets, and -A, which shows method addresses.
(Suggested by Charles Lloyd.)
- Protocol definitions are all printed at the beginning of the
output for each file. Duplicate protocol definitions are no
longer shown.
- New option, -S, to sort the output. Protocols are sorted by
name. Classes and categories are sorted by name. Class and
instance methods are each sorted by name. (Suggested by
Charles Lloyd.)
- When the -S option is not used, the method definitions are
printed out reversed from the order they are found in the
Mach-O file. This should reflect the order they are declared
in the original source file.
- The effect of the -C option has changed. It now matches
category and protocol names instead of just class names.
(Carl Lindberg pointed out that categories should also be matched.)
- Corrected output when the target file doesn't have an
Objective-C segment.
- An 'id *' type should now be printed correctly.
- Fixed printing of pointers to arrays.
- Fixed printing of multi-dimensional arrays.
- Made #ifdefs of LC_PREBOUND_DYLIB and LC_LOAD_DYLIB independant
for compiling under 3.3 (Suggested by Carl Lindberg.)
- This now uses the Foundation framework, so it may not work with
Nextstep 3.x.
- flex is no longer required.
- The version number of class-dump is now included in the output.
Visible differences between version 2 and version 1
- class-dump works with framework based files (the whole point of this
exercise!)
- The class declaration shows the adopted protocols.
- Protocol definitions are shown before (rather than after) the class
declaration.
- New option, -r, to recursively expand frameworks and fixed VM
shared libraries.
- A comment is generated to show the file where the classes are
defined. This is helpful when using the -r option.
- New option, -s, to use "char *" instead of "STR".
Known problems
None.
Comments and suggestions are welcomed.
Steve Nygard <nygard@telusplanet.net>
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.