qemurunner: Use backslashreplace with utf8 to make invalid characters clear

Switch to the backslashreplace error handling when decoding strings so that
invalid characters are clear in the stream to improve debugging.

(From OE-Core rev: 8ec86d46f736ec3e625b741e97545377c79414ee)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2023-10-04 13:22:40 +01:00
parent 2305928a00
commit 4abef7a9d9

View File

@@ -109,7 +109,7 @@ class QemuRunner:
def decode_qemulog(self, todecode):
# Sanitize the data received from qemu as it may contain control characters
msg = todecode.decode("utf-8", errors='ignore')
msg = todecode.decode("utf-8", errors='backslashreplace')
msg = re_control_char.sub('', msg)
return msg
@@ -473,7 +473,7 @@ class QemuRunner:
self.logger.error('Invalid file type: %s\n%s' % (file))
read = b''
self.logger.debug2('Partial boot log:\n%s' % (read.decode('utf-8', errors='ignore')))
self.logger.debug2('Partial boot log:\n%s' % (read.decode('utf-8', errors='backslashreplace')))
data = data + read
if data:
bootlog += data