mirror of https://github.com/proxmox/mirror_qemu
gdbstub: Do not use memset() on GByteArray
Introduce gdb_get_zeroes() to fill a GByteArray with zeroes.
Fixes: a010bdbe71
("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>
master
parent
bbc40fefce
commit
7b8c1527ae
|
@ -125,6 +125,15 @@ static inline int gdb_get_reg128(GByteArray *buf, uint64_t val_hi,
|
||||||
return 16;
|
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
|
* gdb_get_reg_ptr: get pointer to start of last element
|
||||||
* @len: length of 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) {
|
if (gdb_has_xml) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
memset(mem_buf, 0, 12);
|
return gdb_get_zeroes(mem_buf, 12);
|
||||||
return 12;
|
|
||||||
}
|
}
|
||||||
switch (n) {
|
switch (n) {
|
||||||
case 24:
|
case 24:
|
||||||
|
|
|
@ -105,8 +105,7 @@ int xtensa_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
|
||||||
default:
|
default:
|
||||||
qemu_log_mask(LOG_UNIMP, "%s from reg %d of unsupported size %d\n",
|
qemu_log_mask(LOG_UNIMP, "%s from reg %d of unsupported size %d\n",
|
||||||
__func__, n, reg->size);
|
__func__, n, reg->size);
|
||||||
memset(mem_buf, 0, reg->size);
|
return gdb_get_zeroes(mem_buf, reg->size);
|
||||||
return reg->size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case xtRegisterTypeWindow: /*a*/
|
case xtRegisterTypeWindow: /*a*/
|
||||||
|
@ -115,8 +114,7 @@ int xtensa_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
|
||||||
default:
|
default:
|
||||||
qemu_log_mask(LOG_UNIMP, "%s from reg %d of unsupported type %d\n",
|
qemu_log_mask(LOG_UNIMP, "%s from reg %d of unsupported type %d\n",
|
||||||
__func__, n, reg->type);
|
__func__, n, reg->type);
|
||||||
memset(mem_buf, 0, reg->size);
|
return gdb_get_zeroes(mem_buf, reg->size);
|
||||||
return reg->size;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue