IA-64 has a register stack. This is somewhat like the register windows on sparcs. If you want to be able to view all of the registers, you need to flush the register stack to memory somehow. This can be done by calling getcontext as David Mosberger mentioned, but can also be done by using the flushrs instruction, either directly via a builtin, or by a small assembly language stub (which is what boehm-gc does).
IA-64 has two stacks. One is the regular stack that holds procedure activation frames. The other stack is called the backing store, and holds the part of the register stack that has been flushed to memory. (This is unlike the sparc which uses a single stack for both.) You will have to search both stacks. In order to get your GC working, you will have to spend a little time reading IA-64 architecture manuals to understand how all of this stuff works. Or alternatively study a working example. boehm-gc for instance already supports IA-64. Jim

