Mercurial > hg > Members > aka > jupyter_CbC_kernel
changeset 3:8ddfdd2a8574
Add retcode to stderr to make errors such as segfaults visible
author | Brendan Rius <brendan@omixy.com> |
---|---|
date | Fri, 25 Mar 2016 14:13:22 +0000 |
parents | b46b2e5b6c08 |
children | 5c4b5066fab0 |
files | c_kernel/kernel.py |
diffstat | 1 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- 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}