U \ @sddlZddlmZddlmZddlmZddlmZdZ dZ dZ d je e e d ZeeejejBZGd d d eZd dZdS)N)Hub) Integrationadd_global_event_processor)capture_internal_exceptionsz[a-zA-Z0-9/._:\\-]+z[a-zA-Z0-9._:<>,-]+z [A-Fa-f0-9]+z ^(?P\d+)\.\s (?P{MODULE_RE})\( (?P{TYPE_RE}\ )? ((?P{TYPE_RE}) (?P\([^)]*\))? )? ((?P\ const)?\+0x(?P{HEXVAL_RE}))? \)\s \[0x(?P{HEXVAL_RE})\]$ ) MODULE_RE HEXVAL_RETYPE_REc@seZdZdZeddZdS)GnuBacktraceIntegrationZ gnu_backtracecCstdd}dS)Nc Ss(tt||W5QRSQRXdS)N)r_process_gnu_backtrace)eventhintr/gnu_backtrace.pyprocess_gnu_backtrace(szAGnuBacktraceIntegration.setup_once..process_gnu_backtracer)rrrr setup_once&sz"GnuBacktraceIntegration.setup_onceN)__name__ __module__ __qualname__Z identifier staticmethodrrrrrr #sr c Csbtjtdkr|S|dd}|dkr,|S|dd}|dkrD|S|dd}|dkr\|S|D]}|didg}|s~q`|dd}|sq`g}g}|D]t} t| } | r|t | d| dpd| d pdd d fq|r | r |dd=qq|| q|r`|j d d d|D]\} } || q.|dd ||d<q`|S)Nexc_info exceptionvaluesZ stacktraceframesvalueindexpackagefunctionZnative)rrplatformcSs |d S)Nrr)xrrrez(_process_gnu_backtrace..)keyz: )rZcurrentZget_integrationr get splitlinesFRAME_REmatchappendintgroupstripsortjoin) r r rrrrmsgZadditional_framesZnew_msgliner'_framerrrr .sT              r )reZsentry_sdk.hubrZsentry_sdk.integrationsrZsentry_sdk.scoperZsentry_sdk.utilsrZAnyZDictrr rformatr&compile MULTILINEVERBOSEr r rrrrs