aboutsummaryrefslogtreecommitdiff
path: root/gdb/rs6000-nat.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/rs6000-nat.c')
-rw-r--r--gdb/rs6000-nat.c122
1 files changed, 64 insertions, 58 deletions
diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c
index 4a98612..ec1e401 100644
--- a/gdb/rs6000-nat.c
+++ b/gdb/rs6000-nat.c
@@ -61,16 +61,16 @@
/* On AIX4.3+, sys/ldr.h provides different versions of struct ld_info for
debugging 32-bit and 64-bit processes. Define a typedef and macros for
- accessing fields in the appropriate structures. */
+ accessing fields in the appropriate structures. */
/* In 32-bit compilation mode (which is the only mode from which ptrace()
- works on 4.3), __ld_info32 is #defined as equivalent to ld_info. */
+ works on 4.3), __ld_info32 is #defined as equivalent to ld_info. */
#ifdef __ld_info32
# define ARCH3264
#endif
-/* Return whether the current architecture is 64-bit. */
+/* Return whether the current architecture is 64-bit. */
#ifndef ARCH3264
# define ARCH64() 0
@@ -78,7 +78,7 @@
# define ARCH64() (register_size (target_gdbarch, 0) == 8)
#endif
-/* Union of 32-bit and 64-bit versions of ld_info. */
+/* Union of 32-bit and 64-bit versions of ld_info. */
typedef union {
#ifndef ARCH3264
@@ -92,7 +92,7 @@ typedef union {
/* If compiling with 32-bit and 64-bit debugging capability (e.g. AIX 4.x),
declare and initialize a variable named VAR suitable for use as the arch64
- parameter to the various LDI_*() macros. */
+ parameter to the various LDI_*() macros. */
#ifndef ARCH3264
# define ARCH64_DECL(var)
@@ -102,7 +102,7 @@ typedef union {
/* Return LDI's FIELD for a 64-bit process if ARCH64 and for a 32-bit process
otherwise. This technique only works for FIELDs with the same data type in
- 32-bit and 64-bit versions of ld_info. */
+ 32-bit and 64-bit versions of ld_info. */
#ifndef ARCH3264
# define LDI_FIELD(ldi, arch64, field) (ldi)->l32.ldinfo_##field
@@ -112,7 +112,7 @@ typedef union {
#endif
/* Return various LDI fields for a 64-bit process if ARCH64 and for a 32-bit
- process otherwise. */
+ process otherwise. */
#define LDI_NEXT(ldi, arch64) LDI_FIELD(ldi, arch64, next)
#define LDI_FD(ldi, arch64) LDI_FIELD(ldi, arch64, fd)
@@ -176,7 +176,7 @@ regmap (struct gdbarch *gdbarch, int regno, int *isfloat)
return -1;
}
-/* Call ptrace(REQ, ID, ADDR, DATA, BUF). */
+/* Call ptrace(REQ, ID, ADDR, DATA, BUF). */
static int
rs6000_ptrace32 (int req, int id, int *addr, int data, int *buf)
@@ -189,7 +189,7 @@ rs6000_ptrace32 (int req, int id, int *addr, int data, int *buf)
return ret;
}
-/* Call ptracex(REQ, ID, ADDR, DATA, BUF). */
+/* Call ptracex(REQ, ID, ADDR, DATA, BUF). */
static int
rs6000_ptrace64 (int req, int id, long long addr, int data, void *buf)
@@ -206,7 +206,7 @@ rs6000_ptrace64 (int req, int id, long long addr, int data, void *buf)
return ret;
}
-/* Fetch register REGNO from the inferior. */
+/* Fetch register REGNO from the inferior. */
static void
fetch_register (struct regcache *regcache, int regno)
@@ -215,16 +215,16 @@ fetch_register (struct regcache *regcache, int regno)
int addr[MAX_REGISTER_SIZE];
int nr, isfloat;
- /* Retrieved values may be -1, so infer errors from errno. */
+ /* Retrieved values may be -1, so infer errors from errno. */
errno = 0;
nr = regmap (gdbarch, regno, &isfloat);
- /* Floating-point registers. */
+ /* Floating-point registers. */
if (isfloat)
rs6000_ptrace32 (PT_READ_FPR, PIDGET (inferior_ptid), addr, nr, 0);
- /* Bogus register number. */
+ /* Bogus register number. */
else if (nr < 0)
{
if (regno >= gdbarch_num_regs (gdbarch))
@@ -234,15 +234,16 @@ fetch_register (struct regcache *regcache, int regno)
return;
}
- /* Fixed-point registers. */
+ /* Fixed-point registers. */
else
{
if (!ARCH64 ())
- *addr = rs6000_ptrace32 (PT_READ_GPR, PIDGET (inferior_ptid), (int *)nr, 0, 0);
+ *addr = rs6000_ptrace32 (PT_READ_GPR, PIDGET (inferior_ptid),
+ (int *) nr, 0, 0);
else
{
/* PT_READ_GPR requires the buffer parameter to point to long long,
- even if the register is really only 32 bits. */
+ even if the register is really only 32 bits. */
long long buf;
rs6000_ptrace64 (PT_READ_GPR, PIDGET (inferior_ptid), nr, 0, &buf);
if (register_size (gdbarch, regno) == 8)
@@ -257,14 +258,14 @@ fetch_register (struct regcache *regcache, int regno)
else
{
#if 0
- /* FIXME: this happens 3 times at the start of each 64-bit program. */
+ /* FIXME: this happens 3 times at the start of each 64-bit program. */
perror ("ptrace read");
#endif
errno = 0;
}
}
-/* Store register REGNO back into the inferior. */
+/* Store register REGNO back into the inferior. */
static void
store_register (struct regcache *regcache, int regno)
@@ -276,16 +277,16 @@ store_register (struct regcache *regcache, int regno)
/* Fetch the register's value from the register cache. */
regcache_raw_collect (regcache, regno, addr);
- /* -1 can be a successful return value, so infer errors from errno. */
+ /* -1 can be a successful return value, so infer errors from errno. */
errno = 0;
nr = regmap (gdbarch, regno, &isfloat);
- /* Floating-point registers. */
+ /* Floating-point registers. */
if (isfloat)
rs6000_ptrace32 (PT_WRITE_FPR, PIDGET (inferior_ptid), addr, nr, 0);
- /* Bogus register number. */
+ /* Bogus register number. */
else if (nr < 0)
{
if (regno >= gdbarch_num_regs (gdbarch))
@@ -294,7 +295,7 @@ store_register (struct regcache *regcache, int regno)
regno);
}
- /* Fixed-point registers. */
+ /* Fixed-point registers. */
else
{
if (regno == gdbarch_sp_regnum (gdbarch))
@@ -302,18 +303,19 @@ store_register (struct regcache *regcache, int regno)
process to give kernel a chance to do internal housekeeping.
Otherwise the following ptrace(2) calls will mess up user stack
since kernel will get confused about the bottom of the stack
- (%sp). */
+ (%sp). */
exec_one_dummy_insn (regcache);
/* The PT_WRITE_GPR operation is rather odd. For 32-bit inferiors,
the register's value is passed by value, but for 64-bit inferiors,
the address of a buffer containing the value is passed. */
if (!ARCH64 ())
- rs6000_ptrace32 (PT_WRITE_GPR, PIDGET (inferior_ptid), (int *)nr, *addr, 0);
+ rs6000_ptrace32 (PT_WRITE_GPR, PIDGET (inferior_ptid),
+ (int *) nr, *addr, 0);
else
{
/* PT_WRITE_GPR requires the buffer parameter to point to an 8-byte
- area, even if the register is really only 32 bits. */
+ area, even if the register is really only 32 bits. */
long long buf;
if (register_size (gdbarch, regno) == 8)
memcpy (&buf, addr, 8);
@@ -331,7 +333,7 @@ store_register (struct regcache *regcache, int regno)
}
/* Read from the inferior all registers if REGNO == -1 and just register
- REGNO otherwise. */
+ REGNO otherwise. */
static void
rs6000_fetch_inferior_registers (struct target_ops *ops,
@@ -469,7 +471,8 @@ rs6000_xfer_partial (struct target_ops *ops, enum target_object object,
rounded_offset, 0, NULL);
else
buffer.word = rs6000_ptrace32 (PT_READ_I, pid,
- (int *)(uintptr_t)rounded_offset,
+ (int *) (uintptr_t)
+ rounded_offset,
0, NULL);
}
@@ -484,7 +487,8 @@ rs6000_xfer_partial (struct target_ops *ops, enum target_object object,
rounded_offset, buffer.word, NULL);
else
rs6000_ptrace32 (PT_WRITE_D, pid,
- (int *)(uintptr_t)rounded_offset, buffer.word, NULL);
+ (int *) (uintptr_t) rounded_offset,
+ buffer.word, NULL);
if (errno)
return 0;
}
@@ -562,7 +566,7 @@ rs6000_wait (struct target_ops *ops,
/* stop after load" status. */
if (status == 0x57c)
ourstatus->kind = TARGET_WAITKIND_LOADED;
- /* signal 0. I have no idea why wait(2) returns with this status word. */
+ /* signal 0. I have no idea why wait(2) returns with this status word. */
else if (status == 0x7f)
ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
/* A normal waitstatus. Let the usual macros deal with it. */
@@ -574,7 +578,7 @@ rs6000_wait (struct target_ops *ops,
/* Execute one dummy breakpoint instruction. This way we give the kernel
a chance to do some housekeeping and update inferior's internal data,
- including u_area. */
+ including u_area. */
static void
exec_one_dummy_insn (struct regcache *regcache)
@@ -586,9 +590,9 @@ exec_one_dummy_insn (struct regcache *regcache)
CORE_ADDR prev_pc;
void *bp;
- /* We plant one dummy breakpoint into DUMMY_INSN_ADDR address. We
+ /* We plant one dummy breakpoint into DUMMY_INSN_ADDR address. We
assume that this address will never be executed again by the real
- code. */
+ code. */
bp = deprecated_insert_raw_breakpoint (gdbarch, NULL, DUMMY_INSN_ADDR);
@@ -602,7 +606,8 @@ exec_one_dummy_insn (struct regcache *regcache)
if (ARCH64 ())
ret = rs6000_ptrace64 (PT_CONTINUE, PIDGET (inferior_ptid), 1, 0, NULL);
else
- ret = rs6000_ptrace32 (PT_CONTINUE, PIDGET (inferior_ptid), (int *)1, 0, NULL);
+ ret = rs6000_ptrace32 (PT_CONTINUE, PIDGET (inferior_ptid),
+ (int *) 1, 0, NULL);
if (ret != 0)
perror ("pt_continue");
@@ -619,7 +624,7 @@ exec_one_dummy_insn (struct regcache *regcache)
/* Copy information about text and data sections from LDI to VP for a 64-bit
- process if ARCH64 and for a 32-bit process otherwise. */
+ process if ARCH64 and for a 32-bit process otherwise. */
static void
vmap_secs (struct vmap *vp, LdInfo *ldi, int arch64)
@@ -646,7 +651,7 @@ vmap_secs (struct vmap *vp, LdInfo *ldi, int arch64)
vp->tstart += vp->toffs;
}
-/* handle symbol translation on vmapping */
+/* Handle symbol translation on vmapping. */
static void
vmap_symtab (struct vmap *vp)
@@ -666,7 +671,7 @@ vmap_symtab (struct vmap *vp)
objfile = symfile_objfile;
}
else if (!vp->loaded)
- /* If symbols are not yet loaded, offsets are not yet valid. */
+ /* If symbols are not yet loaded, offsets are not yet valid. */
return;
new_offsets =
@@ -732,8 +737,8 @@ add_vmap (LdInfo *ldi)
ARCH64_DECL (arch64);
/* This ldi structure was allocated using alloca() in
- xcoff_relocate_symtab(). Now we need to have persistent object
- and member names, so we should save them. */
+ xcoff_relocate_symtab(). Now we need to have persistent object
+ and member names, so we should save them. */
filename = LDI_FILENAME (ldi, arch64);
mem = filename + strlen (filename) + 1;
@@ -754,7 +759,7 @@ add_vmap (LdInfo *ldi)
return NULL;
}
- /* make sure we have an object file */
+ /* Make sure we have an object file. */
if (bfd_check_format (abfd, bfd_object))
vp = map_vmap (abfd, 0);
@@ -762,7 +767,7 @@ add_vmap (LdInfo *ldi)
else if (bfd_check_format (abfd, bfd_archive))
{
last = 0;
- /* FIXME??? am I tossing BFDs? bfd? */
+ /* FIXME??? am I tossing BFDs? bfd? */
while ((last = bfd_openr_next_archived_file (abfd, last)))
if (strcmp (mem, last->filename) == 0)
break;
@@ -829,7 +834,7 @@ vmap_ldinfo (LdInfo *ldi)
if (fstat (fd, &ii) < 0)
{
/* The kernel sets ld_info to -1, if the process is still using the
- object, and the object is removed. Keep the symbol info for the
+ object, and the object is removed. Keep the symbol info for the
removed object and issue a warning. */
warning (_("%s (fd=%d) has disappeared, keeping its symbols"),
name, fd);
@@ -841,12 +846,12 @@ vmap_ldinfo (LdInfo *ldi)
struct objfile *objfile;
/* First try to find a `vp', which is the same as in ldinfo.
- If not the same, just continue and grep the next `vp'. If same,
- relocate its tstart, tend, dstart, dend values. If no such `vp'
+ If not the same, just continue and grep the next `vp'. If same,
+ relocate its tstart, tend, dstart, dend values. If no such `vp'
found, get out of this for loop, add this ldi entry as a new vmap
- (add_vmap) and come back, find its `vp' and so on... */
+ (add_vmap) and come back, find its `vp' and so on... */
- /* The filenames are not always sufficient to match on. */
+ /* The filenames are not always sufficient to match on. */
if ((name[0] == '/' && strcmp (name, vp->name) != 0)
|| (memb[0] && strcmp (memb, vp->member) != 0))
@@ -880,7 +885,7 @@ vmap_ldinfo (LdInfo *ldi)
if (vp->objfile == NULL)
got_exec_file = 1;
- /* relocate symbol table(s). */
+ /* relocate symbol table(s). */
vmap_symtab (vp);
/* Announce new object files. Doing this after symbol relocation
@@ -891,7 +896,8 @@ vmap_ldinfo (LdInfo *ldi)
/* There may be more, so we don't break out of the loop. */
}
- /* if there was no matching *vp, we must perforce create the sucker(s) */
+ /* If there was no matching *vp, we must perforce create the
+ sucker(s). */
if (!got_one && !retried)
{
add_vmap (ldi);
@@ -920,15 +926,14 @@ symbols to the proper address)."),
breakpoint_re_set ();
}
-/* As well as symbol tables, exec_sections need relocation. After
+/* As well as symbol tables, exec_sections need relocation. After
the inferior process' termination, there will be a relocated symbol
- table exist with no corresponding inferior process. At that time, we
+ table exist with no corresponding inferior process. At that time, we
need to use `exec' bfd, rather than the inferior process's memory space
to look up symbols.
`exec_sections' need to be relocated only once, as long as the exec
- file remains unchanged.
- */
+ file remains unchanged. */
static void
vmap_exec (void)
@@ -966,7 +971,7 @@ vmap_exec (void)
}
/* Set the current architecture from the host running GDB. Called when
- starting a child process. */
+ starting a child process. */
static void (*super_create_inferior) (struct target_ops *,char *exec_file,
char *allargs, char **env, int from_tty);
@@ -1017,7 +1022,8 @@ rs6000_create_inferior (struct target_ops * ops, char *exec_file,
if (!gdbarch_update_p (info))
internal_error (__FILE__, __LINE__,
- _("rs6000_create_inferior: failed to select architecture"));
+ _("rs6000_create_inferior: failed "
+ "to select architecture"));
}
@@ -1048,8 +1054,8 @@ xcoff_relocate_symtab (unsigned int pid)
#if 0
/* According to my humble theory, AIX has some timing problems and
when the user stack grows, kernel doesn't update stack info in time
- and ptrace calls step on user stack. That is why we sleep here a
- little, and give kernel to update its internals. */
+ and ptrace calls step on user stack. That is why we sleep here a
+ little, and give kernel to update its internals. */
usleep (36000);
#endif
@@ -1068,7 +1074,7 @@ xcoff_relocate_symtab (unsigned int pid)
else
{
vmap_ldinfo (ldi);
- vmap_exec (); /* relocate the exec and core sections as well. */
+ vmap_exec (); /* relocate the exec and core sections as well. */
}
} while (rc == -1);
if (ldi)
@@ -1089,7 +1095,7 @@ xcoff_relocate_core (struct target_ops *target)
struct vmap *vp;
int arch64 = ARCH64 ();
- /* Size of a struct ld_info except for the variable-length filename. */
+ /* Size of a struct ld_info except for the variable-length filename. */
int nonfilesz = (int)LDI_FILENAME ((LdInfo *)0, arch64);
/* Allocated size of buffer. */
@@ -1147,7 +1153,7 @@ xcoff_relocate_core (struct target_ops *target)
else
vp = add_vmap (ldi);
- /* Process next shared library upon error. */
+ /* Process next shared library upon error. */
offset += LDI_NEXT (ldi, arch64);
if (vp == NULL)
continue;