# HG changeset patch # User Brendan Rius # Date 1458915202 0 # Node ID 8ddfdd2a8574f77ce977ee7ff9d4b116c5f24a05 # Parent b46b2e5b6c088bbead4815a7cd61d076481cea95 Add retcode to stderr to make errors such as segfaults visible diff -r b46b2e5b6c08 -r 8ddfdd2a8574 c_kernel/kernel.py --- a/c_kernel/kernel.py Fri Mar 25 14:08:26 2016 +0000 +++ b/c_kernel/kernel.py Fri Mar 25 14:13:22 2016 +0000 @@ -53,16 +53,20 @@ source_file.flush() with self.new_temp_file(suffix='.out') as binary_file: retcode, stdout, stderr = self.compile_with_gcc(source_file.name, binary_file.name) - self.log.error(retcode) - self.log.error(stdout) - self.log.error(stderr) + if retcode != 0: + stderr += "[C kernel] GCC exited with code {}".format(retcode) + self.log.error("GCC return code: {}".format(retcode)) + self.log.error("GCC stdout: {}".format(stdout)) + self.log.error("GCC stderr: {}".format(stderr)) retcode, out, err = CKernel.execute_command([binary_file.name]) + if retcode != 0: + stderr += "[C kernel] Executable exited with code {}".format(retcode) + self.log.error("Executable retcode: {}".format(retcode)) + self.log.error("Executable stdout: {}".format(out)) + self.log.error("Executable stderr: {}".format(err)) stdout += out stderr += err - self.log.error(retcode) - self.log.error(out) - self.log.error(err) if not silent: stream_content = {'name': 'stderr', 'text': stderr}