Commit ce921b20 authored by maruel@chromium.org's avatar maruel@chromium.org

Use https for stack trace upload.

Add an explicit Register() function to be called outside of this file.
Send the host fqdn to help know from where the exception comes. It is useful when a build slave throws an exception.

Review URL: http://codereview.chromium.org/2327003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@48455 0039d316-1c4b-4281-b951-d872f2087c98
parent a8e36cbb
......@@ -13,10 +13,15 @@ import traceback
import socket
import sys
# Configure these values.
DEFAULT_URL = 'http://chromium-status.appspot.com/breakpad'
DEFAULT_URL = 'https://chromium-status.appspot.com/breakpad'
_REGISTERED = False
def SendStack(last_tb, stack, url=None):
"""Sends the stack trace to the breakpad server."""
if not url:
url = DEFAULT_URL
print 'Sending crash report ...'
......@@ -26,6 +31,7 @@ def SendStack(last_tb, stack, url=None):
'stack': stack,
'user': getpass.getuser(),
'exception': last_tb,
'host': socket.getfqdn(),
}
request = urllib.urlopen(url, urllib.urlencode(params))
print request.read()
......@@ -35,6 +41,7 @@ def SendStack(last_tb, stack, url=None):
def CheckForException():
"""Runs at exit. Look if there was an exception active."""
last_value = getattr(sys, 'last_value', None)
if last_value and not isinstance(last_value, KeyboardInterrupt):
last_tb = getattr(sys, 'last_traceback', None)
......@@ -42,7 +49,19 @@ def CheckForException():
SendStack(repr(last_value), ''.join(traceback.format_tb(last_tb)))
def Register():
"""Registers the callback at exit. Calling it multiple times is no-op."""
global _REGISTERED
if _REGISTERED:
return
_REGISTERED = True
atexit.register(CheckForException)
# 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')):
# Skip unit tests and we don't want anything from non-googler.
atexit.register(CheckForException)
Register()
# Uncomment this line if you want to test it out.
#Register()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment