This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
A frame that gets the saved registers from the register cache. As for uses:That's right.If that is the case then I don't think this is either necessary or correct. A `struct frame_info' allows frame specific unwind functions - at present only dummy-frame and saved-regs-frame versions are implemented, however the next ones to implement are cfi-frame (unwind using CFI info) and regs-frame (unwind using the register cache).
For your problem, wouldn't it be better to, instead of creating fake CFI info, implement custom frame unwind functions that handle your case?
Hrm. What do you mean by regs-frame? If it's for the current frame wouldn't that be a frame which just doesn't unwind?
So you're proposing that the saved-regs code be used to generate a cfi description as well?As for this situation, and the similar one for i386... there are three unwind functions, to find the previous frame's registers, ID, and PC. For this case we just want to express a normal function call which saves no registers; pretty easy. But for i386 I'll want to express something which initially pushes a register, and then does some work, pops it, and does more work before returning.
There's plenty of ways to express that but it seems to me that the most useful one would be to have essentially a glorified prologue reader which builds that description. Then the machinery to handle that description is - you guessed it - a standard CFI reader. It might be nice to someday split up the CFI parser and executer so that we could provide the description less obtusely, but I'd hate to see us duplicate the machinery.
BTW, /* See description above. The previous frame's resume address. Save the previous PC in a local cache. */ frame_pc_unwind_ftype *pc_unwind; /* See description above. The previous frame's resume address. Save the previous PC in a local cache. */ frame_id_unwind_ftype *id_unwind; Second comment is a past-o?
Thanks. Andrew
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |