|
From: <sv...@va...> - 2005-11-09 14:43:09
|
Author: sewardj
Date: 2005-11-09 14:43:03 +0000 (Wed, 09 Nov 2005)
New Revision: 5056
Log:
Third pass at the ppc32 ptrace stuff. It compiles now, but gcc complains=
that
the last two args to VG_(ptrace) are ints when they should be pointers. =
So
I'm still not sure whether this is right or not. Should I just put in a =
bunch
of casts to shut it up, or is it really expecting pointers and not ints?
Modified:
trunk/coregrind/m_debugger.c
Modified: trunk/coregrind/m_debugger.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_debugger.c 2005-11-09 14:13:08 UTC (rev 5055)
+++ trunk/coregrind/m_debugger.c 2005-11-09 14:43:03 UTC (rev 5056)
@@ -36,9 +36,9 @@
#include "pub_core_libcprint.h"
#include "pub_core_libcproc.h"
#include "pub_core_libcsignal.h"
-#include "pub_core_libcassert.h" // I_die_here
#include "pub_core_options.h"
=20
+
#define WIFSTOPPED(status) (((status) & 0xff) =3D=3D 0x7f)
#define WSTOPSIG(status) (((status) & 0xff00) >> 8)
=20
@@ -88,44 +88,44 @@
#elif defined(VGA_ppc32)
Int rc =3D 0;
=20
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R0 * 4, vex->gue=
st_GPR0);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R1 * 4, vex->gue=
st_GPR1);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R2 * 4, vex->gue=
st_GPR2);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R3 * 4, vex->gue=
st_GPR3);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R4 * 4, vex->gue=
st_GPR4);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R5 * 4, vex->gue=
st_GPR5);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R6 * 4, vex->gue=
st_GPR6);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R7 * 4, vex->gue=
st_GPR7);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R8 * 4, vex->gue=
st_GPR8);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R9 * 4, vex->gue=
st_GPR9);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R10 * 4, vex->gu=
est_GPR10);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R11 * 4, vex->gu=
est_GPR11);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R12 * 4, vex->gu=
est_GPR12);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R13 * 4, vex->gu=
est_GPR13);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R14 * 4, vex->gu=
est_GPR14);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R15 * 4, vex->gu=
est_GPR15);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R16 * 4, vex->gu=
est_GPR16);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R17 * 4, vex->gu=
est_GPR17);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R18 * 4, vex->gu=
est_GPR18);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R19 * 4, vex->gu=
est_GPR19);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R20 * 4, vex->gu=
est_GPR20);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R21 * 4, vex->gu=
est_GPR21);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R22 * 4, vex->gu=
est_GPR22);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R23 * 4, vex->gu=
est_GPR23);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R24 * 4, vex->gu=
est_GPR24);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R25 * 4, vex->gu=
est_GPR25);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R26 * 4, vex->gu=
est_GPR26);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R27 * 4, vex->gu=
est_GPR27);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R28 * 4, vex->gu=
est_GPR28);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R29 * 4, vex->gu=
est_GPR29);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R30 * 4, vex->gu=
est_GPR30);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_R31 * 4, vex->gu=
est_GPR31);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_NIP * 4, vex->gu=
est_CIA);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_CCR * 4,
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R0 * 4, vex->gues=
t_GPR0);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R1 * 4, vex->gues=
t_GPR1);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R2 * 4, vex->gues=
t_GPR2);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R3 * 4, vex->gues=
t_GPR3);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R4 * 4, vex->gues=
t_GPR4);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R5 * 4, vex->gues=
t_GPR5);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R6 * 4, vex->gues=
t_GPR6);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R7 * 4, vex->gues=
t_GPR7);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R8 * 4, vex->gues=
t_GPR8);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R9 * 4, vex->gues=
t_GPR9);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R10 * 4, vex->gue=
st_GPR10);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R11 * 4, vex->gue=
st_GPR11);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R12 * 4, vex->gue=
st_GPR12);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R13 * 4, vex->gue=
st_GPR13);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R14 * 4, vex->gue=
st_GPR14);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R15 * 4, vex->gue=
st_GPR15);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R16 * 4, vex->gue=
st_GPR16);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R17 * 4, vex->gue=
st_GPR17);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R18 * 4, vex->gue=
st_GPR18);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R19 * 4, vex->gue=
st_GPR19);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R20 * 4, vex->gue=
st_GPR20);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R21 * 4, vex->gue=
st_GPR21);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R22 * 4, vex->gue=
st_GPR22);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R23 * 4, vex->gue=
st_GPR23);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R24 * 4, vex->gue=
st_GPR24);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R25 * 4, vex->gue=
st_GPR25);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R26 * 4, vex->gue=
st_GPR26);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R27 * 4, vex->gue=
st_GPR27);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R28 * 4, vex->gue=
st_GPR28);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R29 * 4, vex->gue=
st_GPR29);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R30 * 4, vex->gue=
st_GPR30);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_R31 * 4, vex->gue=
st_GPR31);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_NIP * 4, vex->gue=
st_CIA);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_CCR * 4,
LibVEX_GuestPPC32_get_CR(vex));
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_LNK * 4, vex->gu=
est_LR);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_CTR * 4, vex->gu=
est_CTR);
- rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSER, pid, VKI_PT_XER * 4,
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_LNK * 4, vex->gue=
st_LR);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_CTR * 4, vex->gue=
st_CTR);
+ rc |=3D VG_(ptrace)(VKI_PTRACE_POKEUSR, pid, VKI_PT_XER * 4,
LibVEX_GuestPPC32_get_XER(vex));
return rc;
#else
|
|
From: Tom H. <to...@co...> - 2005-11-09 14:51:27
|
In message <200...@ja...>
sv...@va... wrote:
> Third pass at the ppc32 ptrace stuff. It compiles now, but gcc complains that
> the last two args to VG_(ptrace) are ints when they should be pointers. So
> I'm still not sure whether this is right or not. Should I just put in a bunch
> of casts to shut it up, or is it really expecting pointers and not ints?
Just cast them and it will be fine. The ptrace interfaces is horrible...
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|