View file File name : gcc_ice_hook Content :#!/usr/bin/python3 # # Collect information about a gcc internal compiler exception (ICE). # # Copyright (c) 2007 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. import sys import apport, apport.fileutils # parse command line arguments if len(sys.argv) != 3: print('Usage: %s <executable name> <gcc -E output file>' % sys.argv[0]) print('If "-" is specified as second argument, the preprocessed source is read from stdin.') sys.exit(1) (exename, sourcefile) = sys.argv[1:] # create report pr = apport.Report() pr['ExecutablePath'] = exename if sourcefile == '-': pr['PreprocessedSource'] = (sys.stdin, False) else: pr['PreprocessedSource'] = (sourcefile, False) # write report try: with apport.fileutils.make_report_file(pr) as f: pr.write(f) except (IOError, OSError) as e: apport.fatal('Cannot create report: ' + str(e))