@@ -601,9 +601,9 @@ static void qtest_process_command(CharBackend *chr, gchar **words)
qtest_send_prefix(chr);
qtest_sendf(chr, "OK 0x%016" PRIx64 "\n", value);
} else if (strcmp(words[0], "read") == 0) {
- uint64_t addr, len, i;
+ g_autoptr(GString) enc = NULL;
+ uint64_t addr, len;
uint8_t *data;
- char *enc;
int ret;
g_assert(words[1] && words[2]);
@@ -618,16 +618,12 @@ static void qtest_process_command(CharBackend *chr, gchar **words)
address_space_read(first_cpu->as, addr, MEMTXATTRS_UNSPECIFIED, data,
len);
- enc = g_malloc(2 * len + 1);
- for (i = 0; i < len; i++) {
- sprintf(&enc[i * 2], "%02x", data[i]);
- }
+ enc = qemu_hexdump_line(NULL, data, len, 0, 0);
qtest_send_prefix(chr);
- qtest_sendf(chr, "OK 0x%s\n", enc);
+ qtest_sendf(chr, "OK 0x%s\n", enc->str);
g_free(data);
- g_free(enc);
} else if (strcmp(words[0], "b64read") == 0) {
uint64_t addr, len;
uint8_t *data;