gdbstub: Do not use memset() on GByteArray
Introduce gdb_get_zeroes() to fill a GByteArray with zeroes. Fixes: a010bdbe719 ("extend GByteArray to read register helpers") Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20200414102427.7459-1-philmd@redhat.com> [AJB: used slightly more gliby set_size approach] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20200414200631.12799-13-alex.bennee@linaro.org>
This commit is contained in:
parent
bbc40fefce
commit
7b8c1527ae
@ -125,6 +125,15 @@ static inline int gdb_get_reg128(GByteArray *buf, uint64_t val_hi,
|
||||
return 16;
|
||||
}
|
||||
|
||||
static inline int gdb_get_zeroes(GByteArray *array, size_t len)
|
||||
{
|
||||
guint oldlen = array->len;
|
||||
g_byte_array_set_size(array, oldlen + len);
|
||||
memset(array->data + oldlen, 0, len);
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdb_get_reg_ptr: get pointer to start of last element
|
||||
* @len: length of element
|
||||
|
@ -47,8 +47,7 @@ int arm_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
|
||||
if (gdb_has_xml) {
|
||||
return 0;
|
||||
}
|
||||
memset(mem_buf, 0, 12);
|
||||
return 12;
|
||||
return gdb_get_zeroes(mem_buf, 12);
|
||||
}
|
||||
switch (n) {
|
||||
case 24:
|
||||
|
@ -105,8 +105,7 @@ int xtensa_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
|
||||
default:
|
||||
qemu_log_mask(LOG_UNIMP, "%s from reg %d of unsupported size %d\n",
|
||||
__func__, n, reg->size);
|
||||
memset(mem_buf, 0, reg->size);
|
||||
return reg->size;
|
||||
return gdb_get_zeroes(mem_buf, reg->size);
|
||||
}
|
||||
|
||||
case xtRegisterTypeWindow: /*a*/
|
||||
@ -115,8 +114,7 @@ int xtensa_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
|
||||
default:
|
||||
qemu_log_mask(LOG_UNIMP, "%s from reg %d of unsupported type %d\n",
|
||||
__func__, n, reg->type);
|
||||
memset(mem_buf, 0, reg->size);
|
||||
return reg->size;
|
||||
return gdb_get_zeroes(mem_buf, reg->size);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user