Current Path: > > opt > alt > python38 > lib > > python3.8 > site-packages > sentry_sdk > integrations >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
django | Directory | - | - | |
__init__.py | File | 4236 bytes | April 05 2019 23:15:16. | |
_wsgi_common.py | File | 3666 bytes | April 05 2019 23:15:16. | |
aiohttp.py | File | 3889 bytes | April 05 2019 23:15:16. | |
argv.py | File | 894 bytes | April 05 2019 23:15:16. | |
atexit.py | File | 1490 bytes | April 05 2019 23:15:16. | |
aws_lambda.py | File | 6758 bytes | April 05 2019 23:15:16. | |
bottle.py | File | 5527 bytes | April 05 2019 23:15:16. | |
celery.py | File | 4423 bytes | April 05 2019 23:15:16. | |
dedupe.py | File | 1085 bytes | April 05 2019 23:15:16. | |
excepthook.py | File | 1335 bytes | April 05 2019 23:15:16. | |
flask.py | File | 7272 bytes | April 05 2019 23:15:16. | |
gnu_backtrace.py | File | 3008 bytes | April 05 2019 23:15:16. | |
logging.py | File | 6019 bytes | April 05 2019 23:15:16. | |
modules.py | File | 1239 bytes | April 05 2019 23:15:16. | |
pyramid.py | File | 5914 bytes | April 05 2019 23:15:16. | |
rq.py | File | 3273 bytes | April 05 2019 23:15:16. | |
sanic.py | File | 7065 bytes | April 05 2019 23:15:16. | |
serverless.py | File | 1238 bytes | April 05 2019 23:15:16. | |
stdlib.py | File | 1869 bytes | April 05 2019 23:15:16. | |
threading.py | File | 1597 bytes | April 05 2019 23:15:16. | |
tornado.py | File | 6387 bytes | April 05 2019 23:15:16. | |
wsgi.py | File | 7299 bytes | April 05 2019 23:15:16. |
import re from sentry_sdk.hub import Hub from sentry_sdk.integrations import Integration from sentry_sdk.scope import add_global_event_processor from sentry_sdk.utils import capture_internal_exceptions if False: from typing import Any from typing import Dict MODULE_RE = r"[a-zA-Z0-9/._:\\-]+" TYPE_RE = r"[a-zA-Z0-9._:<>,-]+" HEXVAL_RE = r"[A-Fa-f0-9]+" FRAME_RE = r""" ^(?P<index>\d+)\.\s (?P<package>{MODULE_RE})\( (?P<retval>{TYPE_RE}\ )? ((?P<function>{TYPE_RE}) (?P<args>\([^)]*\))? )? ((?P<constoffset>\ const)?\+0x(?P<offset>{HEXVAL_RE}))? \)\s \[0x(?P<retaddr>{HEXVAL_RE})\]$ """.format( MODULE_RE=MODULE_RE, HEXVAL_RE=HEXVAL_RE, TYPE_RE=TYPE_RE ) FRAME_RE = re.compile(FRAME_RE, re.MULTILINE | re.VERBOSE) class GnuBacktraceIntegration(Integration): identifier = "gnu_backtrace" @staticmethod def setup_once(): @add_global_event_processor def process_gnu_backtrace(event, hint): with capture_internal_exceptions(): return _process_gnu_backtrace(event, hint) def _process_gnu_backtrace(event, hint): # type: (Dict[str, Any], Dict[str, Any]) -> Dict[str, Any] if Hub.current.get_integration(GnuBacktraceIntegration) is None: return event exc_info = hint.get("exc_info", None) if exc_info is None: return event exception = event.get("exception", None) if exception is None: return event values = exception.get("values", None) if values is None: return event for exception in values: frames = exception.get("stacktrace", {}).get("frames", []) if not frames: continue msg = exception.get("value", None) if not msg: continue additional_frames = [] new_msg = [] for line in msg.splitlines(): match = FRAME_RE.match(line) if match: additional_frames.append( ( int(match.group("index")), { "package": match.group("package") or None, "function": match.group("function") or None, "platform": "native", }, ) ) elif additional_frames and line.strip(): # If we already started parsing a stacktrace, it must be at the # end of the message and must not contain random garbage lines # between the frames del additional_frames[:] break else: new_msg.append(line) if additional_frames: additional_frames.sort(key=lambda x: -x[0]) for _, frame in additional_frames: frames.append(frame) new_msg.append("<stacktrace parsed and removed by GnuBacktraceIntegration>") exception["value"] = "\n".join(new_msg) return event
SILENT KILLER Tool