Index: breakpad.py |
diff --git a/breakpad.py b/breakpad.py |
index 2d662d7e700ddda7827aa0c5c550c340733f7375..356774d89bc9ee574edfb2fe4908adbc888093b7 100644 |
--- a/breakpad.py |
+++ b/breakpad.py |
@@ -13,14 +13,19 @@ import traceback |
import socket |
import sys |
+# Configure these values. |
+DEFAULT_URL = 'http://chromium-status.appspot.com/breakpad' |
-def SendStack(stack, url='http://chromium-status.appspot.com/breakpad'): |
+def SendStack(last_tb, stack, url=None): |
+ if not url: |
+ url = DEFAULT_URL |
print 'Sending crash report ...' |
try: |
params = { |
'args': sys.argv, |
'stack': stack, |
'user': getpass.getuser(), |
+ 'exception': last_tb, |
} |
request = urllib.urlopen(url, urllib.urlencode(params)) |
print request.read() |
@@ -30,9 +35,11 @@ def SendStack(stack, url='http://chromium-status.appspot.com/breakpad'): |
def CheckForException(): |
- last_tb = getattr(sys, 'last_traceback', None) |
- if last_tb and sys.last_type is not KeyboardInterrupt: |
- SendStack(''.join(traceback.format_tb(last_tb))) |
+ last_value = getattr(sys, 'last_value', None) |
+ if last_value and not isinstance(last_value, KeyboardInterrupt): |
+ last_tb = getattr(sys, 'last_traceback', None) |
+ if last_tb: |
+ SendStack(repr(last_value), ''.join(traceback.format_tb(last_tb))) |
if (not 'test' in sys.modules['__main__'].__file__ and |