Create stderr file, also watch sys_writev (#129)

This commit is contained in:
Mark Mossberg
2017-04-11 14:21:18 -04:00
committed by Yan
parent ebd0a8be72
commit 43d7669252
2 changed files with 5 additions and 0 deletions
+4
View File
@@ -492,10 +492,14 @@ class Executor(object):
file(self._getFilename('test_%08x.syscalls'%test_number),'a').write(repr(state.model.syscall_trace))
stdout = ''
stderr = ''
for sysname, fd, data in state.model.syscall_trace:
if sysname in ('_transmit', '_write') and fd == 1:
stdout += ''.join(map(str, data))
if sysname in ('_transmit', '_write') and fd == 2:
stderr += ''.join(map(str, data))
file(self._getFilename('test_%08x.stdout'%test_number),'a').write(stdout)
file(self._getFilename('test_%08x.stderr'%test_number),'a').write(stderr)
# Save STDIN solution
stdin_file = 'test_{:08x}.stdin'.format(test_number)
+1
View File
@@ -1311,6 +1311,7 @@ class Linux(object):
data += Operators.CHR(cpu.read_int(buf + j, 8))
logger.debug("WRITEV(%r, %r, %r) -> <%r> (size:%r)"%(fd, buf, size, data, len(data)))
self.files[fd].write(data)
self.syscall_trace.append(("_write", fd, data))
total+=size
return total