// // objc-auto-dump.h // objc // The raw dump file format // See objc-gdb.h for the primitive. // // Created by Blaine Garst on 12/8/08. // Copyright 2008 Apple, Inc. All rights reserved. // /* * Raw file format definitions */ // must be unique in first letter... // RAW FORMAT #define HEADER "dumpster" #define THREAD 't' #define LOCAL 'l' #define NODE 'n' #define REGISTER 'r' #define ROOT 'g' #define WEAK 'w' #define CLASS 'c' #define END 'e' #define SixtyFour 1 #define Little 2 /* Raw format, not that anyone should really care. Most programs should use the cooked file reader. <rawfile := <header> <arch> <middle>* <end> <header> := 'd' 'u' 'm' 'p' 's' 't' 'e' 'r' ; the HEADER string <arch> := SixtyFour? + Little? ; architecture <middle> := <thread> | <root> | <node> | <weak> | <class> <thread> := <register> <stack> <local>* ; the triple <register> := 'r' longLength [bytes] ; the register bank <stack> := 't' longLength [bytes] ; the stack <local> := 'l' [long] ; a thread local node <root> := 'g' longAddress longValue <node> := 'n' longAddress longSize intLayout longRefcount longIsa? <weak> := 'w' longAddress longValue <class> := 'c' longAddress <name> <strongLayout> <weakLayout> <name> := intLength [bytes] ; no null byte <strongLayout> := intLength [bytes] ; including 0 byte at end <weakLayout> := intLength [bytes] ; including 0 byte at end <end> := 'e' */