2003-06-21 Andrew Cagney <cagney@redhat.com>
* frame.c (get_frame_register): New function. (frame_unwind_register_signed): New function. (get_frame_register_signed): New function. (frame_unwind_register_unsigned): New function. (get_frame_register_unsigned): New function. * frame.h: Add comments on naming schema. (get_frame_register, frame_unwind_register_signed): Declare. (get_frame_register_signed, get_frame_register_signed): Declare. (frame_unwind_register_unsigned): Declare. (get_frame_register_unsigned): Declare.
This commit is contained in:
parent
373bbd04cb
commit
f0e7d0e8f2
3 changed files with 110 additions and 3 deletions
|
@ -1,3 +1,16 @@
|
||||||
|
2003-06-21 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
|
* frame.c (get_frame_register): New function.
|
||||||
|
(frame_unwind_register_signed): New function.
|
||||||
|
(get_frame_register_signed): New function.
|
||||||
|
(frame_unwind_register_unsigned): New function.
|
||||||
|
(get_frame_register_unsigned): New function.
|
||||||
|
* frame.h: Add comments on naming schema.
|
||||||
|
(get_frame_register, frame_unwind_register_signed): Declare.
|
||||||
|
(get_frame_register_signed, get_frame_register_signed): Declare.
|
||||||
|
(frame_unwind_register_unsigned): Declare.
|
||||||
|
(get_frame_register_unsigned): Declare.
|
||||||
|
|
||||||
2003-06-20 Theodore A. Roth <troth@openavr.org>
|
2003-06-20 Theodore A. Roth <troth@openavr.org>
|
||||||
|
|
||||||
* avr-tdep.c (avr_gdbarch_init): Don't call set_gdbarch_bfd_vma_bit.
|
* avr-tdep.c (avr_gdbarch_init): Don't call set_gdbarch_bfd_vma_bit.
|
||||||
|
|
35
gdb/frame.c
35
gdb/frame.c
|
@ -614,6 +614,41 @@ frame_unwind_register (struct frame_info *frame, int regnum, void *buf)
|
||||||
&realnum, buf);
|
&realnum, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
get_frame_register (struct frame_info *frame,
|
||||||
|
int regnum, void *buf)
|
||||||
|
{
|
||||||
|
frame_unwind_register (frame->next, regnum, buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
LONGEST
|
||||||
|
frame_unwind_register_signed (struct frame_info *frame, int regnum)
|
||||||
|
{
|
||||||
|
char buf[MAX_REGISTER_SIZE];
|
||||||
|
frame_unwind_register (frame, regnum, buf);
|
||||||
|
return extract_signed_integer (buf, REGISTER_VIRTUAL_SIZE (regnum));
|
||||||
|
}
|
||||||
|
|
||||||
|
LONGEST
|
||||||
|
get_frame_register_signed (struct frame_info *frame, int regnum)
|
||||||
|
{
|
||||||
|
return frame_unwind_register_signed (frame->next, regnum);
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONGEST
|
||||||
|
frame_unwind_register_unsigned (struct frame_info *frame, int regnum)
|
||||||
|
{
|
||||||
|
char buf[MAX_REGISTER_SIZE];
|
||||||
|
frame_unwind_register (frame, regnum, buf);
|
||||||
|
return extract_unsigned_integer (buf, REGISTER_VIRTUAL_SIZE (regnum));
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONGEST
|
||||||
|
get_frame_register_unsigned (struct frame_info *frame, int regnum)
|
||||||
|
{
|
||||||
|
return frame_unwind_register_unsigned (frame->next, regnum);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
frame_unwind_signed_register (struct frame_info *frame, int regnum,
|
frame_unwind_signed_register (struct frame_info *frame, int regnum,
|
||||||
LONGEST *val)
|
LONGEST *val)
|
||||||
|
|
65
gdb/frame.h
65
gdb/frame.h
|
@ -23,6 +23,47 @@
|
||||||
#if !defined (FRAME_H)
|
#if !defined (FRAME_H)
|
||||||
#define FRAME_H 1
|
#define FRAME_H 1
|
||||||
|
|
||||||
|
/* The following is the intended naming schema for frame functions.
|
||||||
|
It isn't 100% consistent, but it is aproaching that. Frame naming
|
||||||
|
schema:
|
||||||
|
|
||||||
|
Prefixes:
|
||||||
|
|
||||||
|
get_frame_WHAT...(): Get WHAT from the THIS frame (functionaly
|
||||||
|
equivalent to THIS->next->unwind->what)
|
||||||
|
|
||||||
|
frame_unwind_WHAT...(): Unwind THIS frame's WHAT from the NEXT
|
||||||
|
frame.
|
||||||
|
|
||||||
|
put_frame_WHAT...(): Put a value into this frame (unsafe, need to
|
||||||
|
invalidate the frame / regcache afterwards) (better name more
|
||||||
|
strongly hinting at its unsafeness)
|
||||||
|
|
||||||
|
safe_....(): Safer version of various functions, doesn't throw an
|
||||||
|
error (leave this for later?). Returns non-zero if the fetch
|
||||||
|
succeeds. Return a freshly allocated error message?
|
||||||
|
|
||||||
|
Suffixes:
|
||||||
|
|
||||||
|
void /frame/_WHAT(): Read WHAT's value into the buffer parameter.
|
||||||
|
|
||||||
|
ULONGEST /frame/_WHAT_unsigned(): Return an unsigned value (the
|
||||||
|
alternative is *frame_unsigned_WHAT).
|
||||||
|
|
||||||
|
LONGEST /frame/_WHAT_signed(): Return WHAT signed value.
|
||||||
|
|
||||||
|
What:
|
||||||
|
|
||||||
|
/frame/_memory* (frame, coreaddr, len [, buf]): Extract/return
|
||||||
|
*memory.
|
||||||
|
|
||||||
|
/frame/_register* (frame, regnum [, buf]): extract/return register.
|
||||||
|
|
||||||
|
CORE_ADDR /frame/_{pc,sp,...} (frame): Resume address, innner most
|
||||||
|
stack *address, ...
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
struct symtab_and_line;
|
struct symtab_and_line;
|
||||||
struct frame_unwind;
|
struct frame_unwind;
|
||||||
struct frame_base;
|
struct frame_base;
|
||||||
|
@ -303,16 +344,31 @@ extern void frame_register_unwind (struct frame_info *frame, int regnum,
|
||||||
CORE_ADDR *addrp, int *realnump,
|
CORE_ADDR *addrp, int *realnump,
|
||||||
void *valuep);
|
void *valuep);
|
||||||
|
|
||||||
/* More convenient interface to frame_register_unwind(). */
|
/* Fetch a register from this, or unwind a register from the next
|
||||||
/* NOTE: cagney/2002-09-13: Return void as one day these functions may
|
frame. Note that the get_frame methods are wrappers to
|
||||||
be changed to return an indication that the read succeeded. */
|
frame->next->unwind. They all [potentially] throw an error if the
|
||||||
|
fetch fails. */
|
||||||
|
|
||||||
extern void frame_unwind_register (struct frame_info *frame,
|
extern void frame_unwind_register (struct frame_info *frame,
|
||||||
int regnum, void *buf);
|
int regnum, void *buf);
|
||||||
|
extern void get_frame_register (struct frame_info *frame,
|
||||||
|
int regnum, void *buf);
|
||||||
|
|
||||||
|
extern LONGEST frame_unwind_register_signed (struct frame_info *frame,
|
||||||
|
int regnum);
|
||||||
|
extern LONGEST get_frame_register_signed (struct frame_info *frame,
|
||||||
|
int regnum);
|
||||||
|
extern ULONGEST frame_unwind_register_unsigned (struct frame_info *frame,
|
||||||
|
int regnum);
|
||||||
|
extern ULONGEST get_frame_register_unsigned (struct frame_info *frame,
|
||||||
|
int regnum);
|
||||||
|
|
||||||
|
|
||||||
|
/* Use frame_unwind_register_signed. */
|
||||||
extern void frame_unwind_signed_register (struct frame_info *frame,
|
extern void frame_unwind_signed_register (struct frame_info *frame,
|
||||||
int regnum, LONGEST *val);
|
int regnum, LONGEST *val);
|
||||||
|
|
||||||
|
/* Use frame_unwind_register_signed. */
|
||||||
extern void frame_unwind_unsigned_register (struct frame_info *frame,
|
extern void frame_unwind_unsigned_register (struct frame_info *frame,
|
||||||
int regnum, ULONGEST *val);
|
int regnum, ULONGEST *val);
|
||||||
|
|
||||||
|
@ -330,12 +386,15 @@ extern void frame_register (struct frame_info *frame, int regnum,
|
||||||
/* NOTE: cagney/2002-09-13: Return void as one day these functions may
|
/* NOTE: cagney/2002-09-13: Return void as one day these functions may
|
||||||
be changed to return an indication that the read succeeded. */
|
be changed to return an indication that the read succeeded. */
|
||||||
|
|
||||||
|
/* Use get_frame_register. */
|
||||||
extern void frame_read_register (struct frame_info *frame, int regnum,
|
extern void frame_read_register (struct frame_info *frame, int regnum,
|
||||||
void *buf);
|
void *buf);
|
||||||
|
|
||||||
|
/* Use get_frame_register_signed. */
|
||||||
extern void frame_read_signed_register (struct frame_info *frame,
|
extern void frame_read_signed_register (struct frame_info *frame,
|
||||||
int regnum, LONGEST *val);
|
int regnum, LONGEST *val);
|
||||||
|
|
||||||
|
/* Use get_frame_register_unsigned. */
|
||||||
extern void frame_read_unsigned_register (struct frame_info *frame,
|
extern void frame_read_unsigned_register (struct frame_info *frame,
|
||||||
int regnum, ULONGEST *val);
|
int regnum, ULONGEST *val);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue