309 Commits

Author SHA1 Message Date
Steve Nygard
f0edb6f080 Added quotes around args, otherwise they don't seem to be used. 2006-11-12 11:22:01 +00:00
Steve Nygard
e51911d7db Added -t option to args for new class-dump. 2006-11-12 11:18:05 +00:00
Steve Nygard
2d334ec4e8 Added message if the file doesn't contain any Objective-C info. 2006-11-12 11:16:52 +00:00
Steve Nygard
f26f05bea1 Added option, -t (--suppress-header), to suppress the header from the
output, since it includes the version number which changes each release.
This will make the regression tests work a bit more easily in the future.
2006-11-12 10:57:13 +00:00
Steve Nygard
f3f7ddcdb9 Include a space after each comma separator when listing multiple types in
a template type.  Adjusted test cases to match.  Needed to modify my custom
scanning method to actually skip characters now.
2006-11-12 10:36:19 +00:00
Steve Nygard
abc8687626 Tweaking build script. 2006-10-14 05:48:43 +00:00
Steve Nygard
84f89e63f6 More tweaking, because unfortunately there are structures out there
with some member names, and others not named.  This seems to work at
least as well as the previous release.
2006-10-14 05:40:10 +00:00
Steve Nygard
38ccc0f3d3 Updated copyrights. 2006-10-14 03:17:54 +00:00
Steve Nygard
4cc2b1f8d0 Updated version. 2006-10-14 03:10:35 +00:00
Steve Nygard
535c842285 Turned a comment into another test case. 2006-10-14 03:10:02 +00:00
Steve Nygard
006107d86e Allow comment lines starting with // in the shud*in.txt files.
Added some comments.  Removed obsolete test case.
2006-10-14 02:59:25 +00:00
Steve Nygard
b8ef41235f Changed the object protocols from a string to an array, so we can add
a space after any commas.
2006-10-14 02:40:47 +00:00
Steve Nygard
02ff266ada Cleaning up some unit tests. 2006-10-14 02:25:27 +00:00
Steve Nygard
fd02f10a0b Added a test for empty quoted strings for the lexer, which
was covered later by a parser unit test.
2006-10-14 02:17:44 +00:00
Steve Nygard
a7aa67b1df Renamed method. Even though it now starts with "test", it should
have the wrong signature to be picked up as a unit test by itself.
2006-10-14 02:11:56 +00:00
Steve Nygard
4b33bc6565 Made these unit tests a bit less arbitrary. 2006-10-14 02:08:23 +00:00
Steve Nygard
17ee79aad8 This now seems to correctly handle all cases of double quoted strings
after @ in structure definitions.  The assumption is that either there
are member names for the entire structure, or no names at all.  Had to
update unit test to conform to this assumption.
2006-10-13 13:40:07 +00:00
Steve Nygard
518d3fa82f This includes a bunch of work to try to get the C++ template parsing code working
better.  However, I've discovered a problem with my earlier change with quoted strings
and how I handle member names versus object types... Hmmm.
2006-10-13 11:37:42 +00:00
Steve Nygard
a16202812d Changes to support "id <MyProtocol>" types that appear in Leopard. We now
have a quoted string token in the lexer (so we can easily peek past it for
another double quote, as happens in structures with member names).

Right now the adopted protocols is just a string, but we should check to see
if multiple protocols can occur, and if so split the string between commas
and use a list instead.
2006-10-12 05:42:07 +00:00
Steve Nygard
ab6270bbae Added a couple more tests, as I try to understand how C++ templates should fit
into this, and how I should handle @"<MyProtocol>" types.
2006-10-12 02:22:12 +00:00
Steve Nygard
78083e76c3 Added expected output for this test case. 2006-10-12 02:17:23 +00:00
Steve Nygard
7f3e126430 Bumped version. Experimented with old bug with C++ types, but
the simple fix doesn't work.  Added unit test for one of the failing
cases.
2006-10-10 01:32:56 +00:00
Steve Nygard
2839f51871 Don't need this under version control. 3.1 2005-08-16 06:53:49 +00:00
Steve Nygard
5550e478b5 Updated paths. 2005-08-16 06:53:19 +00:00
Steve Nygard
3121e6de2a Added a script to build releases. 2005-08-14 01:07:37 +00:00
Steve Nygard
e46e5c88e8 Changed version string, to 3.1. 2005-08-14 00:34:00 +00:00
Steve Nygard
aabbb03058 Removed some NSLogs. 2005-08-14 00:28:39 +00:00
Steve Nygard
935803597d Changed "fat file" to "universal binary" in the usage text, suggested
by Eric Albert (outofcheese.org).

Use NXGetArchInfoFromName() to get the cpu type from the --arch
argument.  This is generally better, but using ppc750 is a little
confusing because it just matches on the cputype, ignoring the
subtype...
2005-08-13 23:33:15 +00:00
Steve Nygard
3aa2700e8d Build the release version fat, and link against the 10.4 Universal SDK. 2005-08-13 23:16:35 +00:00
Steve Nygard
3dd90ecf64 Created a new project from scratch and added in the files again, so
that I get the default setup from Xcode 2.1.  Bleck, I do this every
time the change Xcode...
2005-08-13 21:48:16 +00:00
Steve Nygard
d4f7e3eb3f Updated copyrights again, reformatting the description into one line, and making sure all
the copyrights are the same.
2005-08-13 20:32:02 +00:00
Steve Nygard
c7aae04f11 Updated copyrights. 2005-08-13 20:20:58 +00:00
Steve Nygard
cab8bc8492 Use getopt_long() so that I can add a --arch option to choose a
specific architecture from a fat file.
2005-08-01 21:35:58 +00:00
Steve Nygard
db7b33fe3f In +adjustUserSuppliedPath:, fixed a bug when the symlinks go outside of the original
file wrapper.  For example, /System/Library/PrivateFrameworks/ICACameraPriv.framework/ICACameraPriv
currently does this.
2005-08-01 20:41:36 +00:00
Steve Nygard
36d6d09916 A heck of a lot of swapping of the Objective-C info so that we can
dump files that have a different byte order.  Seems to work on the one
universal binary I've been testing against.  It turns out that the SDKs
don't contain any code or Objective-C runtime info, so they can't be
used for testing.

On the upside, this means I don't need to add an option to search the
frameworks in the SDKs.
2005-07-28 23:27:45 +00:00
Steve Nygard
2594d75a53 Swap these structures in memory. They are alway stored in big-endian (ppc) format,
so the changes only affect intel.  Not tested on intel yet.
2005-07-28 19:19:54 +00:00
Steve Nygard
cc9f00908d Most of the Mach-O things handle the opposite byte ordering now. They do this by keeping a copy
of the structures instead of just a pointer to it, so that they can call the system provided
functions for swapping the values in those structures to the current endianess.  Except part of
the symbol table, which is just experimental right now anyway.

CDFatFile and CDFatArch only have special cases on little-endian (intel).  I should try writing
that code next, even though I can't test it on intel.

All of the Objective-C stuff needs to be converted to handle different byte ordering.
2005-07-28 19:05:58 +00:00
Steve Nygard
d4760858c1 Removed a bit of logging. 2005-07-27 23:36:36 +00:00
Steve Nygard
67b4f13cbc This chooses architectures correctly now, and has better error
reporting in this area.  That is, once the architecture of the main file is chosen,
all frameworks/libraries need to have that same architecture.

CDFatFile now checks the magic number to make sure it's correct.

Added a bit of experimental code for noting a mach-o file with different byte
ordering, and reporting the correct cpu type in this case.
2005-07-27 23:11:49 +00:00
Steve Nygard
31efc99e27 In CDMachOFile, map the file into memory at -init instead of in
-process, so that methods like -cputype can be used before -process is
called.
2005-07-27 18:42:39 +00:00
Steve Nygard
2852af6e7f This is a first attempt at handling fat files, but it is not good
enough.  We need to make sure we don't mix and match architectures
between frameworks, among other things.
2005-07-26 23:18:06 +00:00
Steve Nygard
0ad7fea383 Disabled some debug logging. These classes are incomplete. 2005-07-07 07:57:21 +00:00
Steve Nygard
c11e252bd1 And updated the copyright that class-dump spits out. 2005-07-03 07:25:37 +00:00
Steve Nygard
3530d61b65 And removed a comment. And the previous change also bumped the version. 2005-07-03 07:24:34 +00:00
Steve Nygard
c1622113e3 Raise and catch an exception if this isn't a Mach-O file, so at least
we don't seg fault.
2005-07-03 07:23:58 +00:00
Steve Nygard
513467af76 Upgraded to the new project version/extension from Xcode 2.1. Set
Deployment build to build fat.  Build against the 10.4 Universal SDK
so we can build fat.
2005-07-03 07:11:46 +00:00
Steve Nygard
66c6a92d6a Include unistd.h so we don't need to declare optind, optarg. 2004-08-30 00:10:23 +00:00
Steve Nygard
d17e365a6f Start work on trying to understand the dynamic symbol table. 2004-07-08 21:37:38 +00:00
Steve Nygard
d712dab940 Renamed CDSymtabCommand to CDSymbolTable, which is both more verbose and succint. 2004-07-08 21:08:16 +00:00
Steve Nygard
8882f13793 Create CDSymbol instances for each symbol in the symbol table. 2004-07-08 20:49:15 +00:00