home *** CD-ROM | disk | FTP | other *** search
- #ifndef _DYLD_GDB_
- #define _DYLD_GDB_
- /*
- * This file describes the interface between gdb and dyld created for
- * MacOS X GM. Prior to MacOS X GM gdb used the dyld_debug interfaces
- * described in <mach-o/dyld_debug.h>.
- */
-
- /*
- * gdb_dyld_version is the version of gdb interface that dyld is currently
- * exporting. For the interface described in this header file gdb_dyld_version
- * is 1. As the gdb/dyld interface changes this number will be incremented and
- * comments will be added as to what are the are changes for the various
- * versions.
- */
- extern unsigned int gdb_dyld_version;
-
- /*
- * gdb_dyld_state_changed is the internal dyld routine called by dyld to notify
- * gdb that the state of the data structures has changed. gdb is expected to
- * put a break point on this routine and re-read the internal dyld data
- * structures below when this break point is hit.
- */
- extern void gdb_dyld_state_changed(void);
-
- /*
- * gdb looks directly at parts of two of dyld's internal data structures. The
- * list of object file images and the list of library images. The parts of
- * these structures that gdb looks at will not change unless the value of
- * gdb_dyld_version changes. The size of these structures and the other fields
- * that gdb does not look at may change.
- *
- * struct object_images {
- * struct object_image images[NOBJECT_IMAGES];
- * unsigned long nimages;
- * struct object_images *next_images;
- * ...
- * };
- *
- * struct library_images {
- * struct library_image images[NLIBRARY_IMAGES];
- * unsigned long nimages;
- * struct library_images *next_images;
- * ...
- * };
- *
- * Both the object_image structure and the library_image structure
- * start with a structure containing the following fields:
- *
- * struct image {
- * char *name; image name for reporting errors
- * unsigned long vmaddr_slide; the slide from the staticly linked address
- * struct mach_header *mh; address of the mach header of the image
- * unsigned long valid; TRUE if this is struct is valid
- * ...
- * };
- */
-
- /* object_images is the global object_images structure */
-
- /* the number of gdb_object_image structures present per bucket */
- extern unsigned int gdb_nobject_images;
-
- /* the size of each gdb_object_image structure */
- extern unsigned int gdb_object_image_size;
-
- /* library_images is the global library_images structure */
-
- /* the number of gdb_library_image structures present per bucket */
- extern unsigned int gdb_nlibrary_images;
-
- /* the size of each gdb_library_image structure */
- extern unsigned int gdb_library_image_size;
-
- #endif /* _DYLD_GDB_ */
-