]> code.ossystems Code Review - openembedded-core.git/commitdiff
Kill the uncaught exception handler
authorChris Larson <chris_larson@mentor.com>
Fri, 10 Dec 2010 15:51:47 +0000 (10:51 -0500)
committerRichard Purdie <rpurdie@linux.intel.com>
Tue, 4 Jan 2011 14:46:48 +0000 (14:46 +0000)
We now wrap the main() in a try/except, ensuring that both the main portion of
bin/bitbake and the UI raising an exception will be shown to the user.  For
the server and workers, we can ensure in the server itself that exceptions are
handled correctly.

(Bitbake rev: 240d4a7ae80a6636c302ae84266ddfed7a7fcedd)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/bin/bitbake

index 51cb87e28561c8384ec9ef979a87965af47603b1..9b68c23a9b5badcb2776ff3ea9d391b5f7d2d848 100755 (executable)
@@ -57,17 +57,6 @@ class BBConfiguration(object):
         self.pkgs_to_build = []
 
 
-def print_exception(*exc_info):
-    if not isinstance(exc_info[0], SystemExit):
-        if isinstance(exc_info[0], KeyboardInterrupt):
-            logger.error("User aborted.")
-        else:
-            logger.error("Uncaught exception: ", exc_info=exc_info)
-    sys.exit(1)
-
-sys.excepthook = print_exception
-
-
 # Display bitbake/OE warnings via the BitBake.Warnings logger, ignoring others"""
 warnlog = logging.getLogger("BitBake.Warnings")
 _warnings_showwarning = warnings.showwarning
@@ -216,5 +205,10 @@ Default BBFILES are the .bb files in the current directory.""")
         server_connection.terminate()
 
 if __name__ == "__main__":
-    ret = main()
+    try:
+        ret = main()
+    except Exception:
+        ret = 1
+        import traceback
+        traceback.print_exc(5)
     sys.exit(ret)