Peter Maydell <peter.mayd...@linaro.org> writes: > The monitor code for doing a memory_dump() was using ld*_raw() to do > target-CPU accesses out of a local buf[] array. The correct functions > for this purpose are ld*_p(), which take a host pointer, rather than > ld*_raw(), which take an integer representing a guest address and > are somewhat meaningless in softmmu configurations. Nobody noticed > because for softmmu the _raw functions are the same as ldl_p but > with some extra casts thrown in. Switch to using the correct functions > instead. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org>
> --- > monitor.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/monitor.c b/monitor.c > index 1808e41..7e4f605 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -1292,16 +1292,16 @@ static void memory_dump(Monitor *mon, int count, int > format, int wsize, > switch(wsize) { > default: > case 1: > - v = ldub_raw(buf + i); > + v = ldub_p(buf + i); > break; > case 2: > - v = lduw_raw(buf + i); > + v = lduw_p(buf + i); > break; > case 4: > - v = (uint32_t)ldl_raw(buf + i); > + v = (uint32_t)ldl_p(buf + i); > break; > case 8: > - v = ldq_raw(buf + i); > + v = ldq_p(buf + i); > break; > } > monitor_printf(mon, " "); -- Alex Bennée