I got started down this path because the last time I tried to use cvs gdb, it crashed immediately. Some conversation with Andrew at the gcc summit this week inspired me to do more than paper over whatever segv I'd been seeing. Test results with this patch are still abysmal, but backtraces work correctly on two minimal tests that I examined -- including backtracing through signal frames, which I know *didn't* work before. The major changes are: (1) Move all mdebug dependencies into alpha-mdebug-tdep.c. (2) Create three different unwinders, anchored with alpha_mdebug_frame_p alpha_sigtramp_frame_p alpha_heuristic_frame_p All of this code existed in the old routines, scattered about alpha_find_saved_regs, heuristic_proc_desc, find_proc_desc, and alpha_frame_chain. But much harder to suss out what's what. I had been thinking to do some of this in stages, so that it would be easier to see what I was doing, but it kind of got out of hand. Mostly what I'm looking for here is whether or not I've properly understood The Way of Frame Unwinding. r~