gandbug
gandbug is a runtime debugging system for your Cocoa applications. Once added to your application code base (via a simple static library and one line of code), it will add a single menu which will use a variety of introspection techniques to help you understand how your application is really structured and how it really is working.It will show you (besides other things):
- The visual heirachy of your windows - see how things are really layed out, and what the responder chain is.
- Find all bundles and frameworks currently loaded in your application.
- Dump the contents of the pasteboard to see if it contains what you think it does.
- Listen to all the notifications, both in your applications, as well as distributed notifications.
- Show the controller bindings used - what views are bound to what parts of your model, and eavesdrop on the notification mechanism to see them in real time - while you are using the UI.
- Examine all the defaults, both of your application as well as system defaults.
- Find out what dyld has loaded into your application, and where.
- Contents of container objects - whats in an array, dictionary, and will dump the memory of a data object.
- See all the instance variables, as well as retain count (which can be further examined in detail)
- Execute any accessor method, and examine the results of that.
- Go up the class heirarchy to see the instance variables and accessor methods that are inherited from superclasses.
As of version 1.0b4, the following major features have been added:
- A graphing interface to show object relationships or view heirarchies
- An interactive expression evaluator which will, besides telling you what 2 + 2 is, allow you to send messages to your objects interactively, so you can manipulate your application from the "inside".
- The ability to trace arbitrary method execution - marvel as an NSScrollView gets sent a tile message while resizing.