o
    ZhZ                     @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 e
r0d dlmZ d dl	mZ d	Zd
ZdZdjeeedZe ee je jB ZG dd deZdd ZdS )    N)Hub)Integrationadd_global_event_processor)capture_internal_exceptions)TYPE_CHECKING)Any)Eventz[a-zA-Z0-9/._:\\-]+z[a-zA-Z0-9._:<>,-]+z[A-Fa-f0-9]+z
^(?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})\]$
)	MODULE_RE	HEXVAL_RETYPE_REc                   @   s   e Zd ZdZedd ZdS )GnuBacktraceIntegrationZgnu_backtracec                  C   s   t dd } d S )Nc                 S   s4   t   t| |W  d    S 1 sw   Y  d S )N)r   _process_gnu_backtrace)eventhint r   \/var/www/html/lang_env/lib/python3.10/site-packages/sentry_sdk/integrations/gnu_backtrace.pyprocess_gnu_backtrace+   s   $zAGnuBacktraceIntegration.setup_once.<locals>.process_gnu_backtracer   )r   r   r   r   
setup_once(   s   z"GnuBacktraceIntegration.setup_onceN)__name__
__module____qualname__
identifierstaticmethodr   r   r   r   r   r   %   s    r   c              	   C   s>  t jtd u r
| S |dd }|d u r| S | dd }|d u r"| S |dd }|d u r.| S |D ]l}|di dg }|s?q0|dd }|sHq0g }g }| D ])}	t|	}
|
rt|t	|

d|

dpgd |

d	pmd d
df qP||	 qP|r|jdd d |D ]	\}}|| q|d d||d< q0| S )Nexc_info	exceptionvaluesZ
stacktraceframesvalueindexpackagefunctionnative)r    r!   platformc                 S   s
   | d  S )Nr   r   )xr   r   r   <lambda>d   s   
 z(_process_gnu_backtrace.<locals>.<lambda>)keyz:<stacktrace parsed and removed by GnuBacktraceIntegration>
)r   currentZget_integrationr   get
splitlinesFRAME_REmatchappendintgroupsortjoin)r   r   r   r   r   r   msgZadditional_framesZnew_msgliner,   _framer   r   r   r   2   sP   

r   )reZsentry_sdk.hubr   Zsentry_sdk.integrationsr   Zsentry_sdk.scoper   Zsentry_sdk.utilsr   Zsentry_sdk._typesr   typingr   r	   r
   r   r   formatr+   compile	MULTILINEVERBOSEr   r   r   r   r   r   <module>   s&    
