diff --git a/breakpad.py b/breakpad.py index 7f2eab387..0a1fc083d 100644 --- a/breakpad.py +++ b/breakpad.py @@ -4,10 +4,17 @@ """Breakpad for Python. -Sends a notification when a process stops on an exception.""" +Sends a notification when a process stops on an exception. + +It is only enabled when all these conditions are met: + 1. hostname finishes with '.google.com' + 2. main module name doesn't contain the word 'test' + 3. no NO_BREAKPAD environment variable is defined +""" import atexit import getpass +import os import urllib import traceback import socket @@ -33,6 +40,11 @@ def SendStack(last_tb, stack, url=None): 'exception': last_tb, 'host': socket.getfqdn(), } + try: + # That may not always work. + params['exception'] = str(last_tb) + except: + pass request = urllib.urlopen(url, urllib.urlencode(params)) print request.read() request.close() @@ -60,7 +72,8 @@ def Register(): # Skip unit tests and we don't want anything from non-googler. if (not 'test' in sys.modules['__main__'].__file__ and - socket.getfqdn().endswith('.google.com')): + socket.getfqdn().endswith('.google.com') and + not 'NO_BREAKPAD' in os.environ): Register() # Uncomment this line if you want to test it out.