Hello, Attached is a jumbo patch that is the results of me trialing changes to "trad-frame" and a new "tramp-frame" (better name?) that are ment to make the problem of writing a traditional unwinder easier. I've committed this to the new (but effectively still born) cagney_tramp-20040309-branch. Over comming weeks I'll be pulling out various ideas ideas in this patch and running them past people for integration into the mainline (I've already done the first -- pre_init data) in particular: -- pre_init data Already posted. Simplifies the handling of gdbarch_data allocated before the architecture has been fully initialized. -- trad-frame A generic "trad_frame_cache", the idea has already been posted to gdb@. -- [sig]tramp-frame For those signal trampolines that rely on magic instructions at a random address. Pass it a cache builder and the trampolines instruction sequence and it does the rest! In doing this I've made some interface changes, namely: -- make frame-unwind and frame-base more OO In particular pass their vector as a parameter -- add "const struct frame_data" to frame-* objects so that multiple variants can be created More in a few weeks (after 6.1 as this is pretty intrusive). Andrew