Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Demangle Cython __pyx_* symbols in native stack frames

オープン
#6,500 コメント 3 件 リアクション 0 件 担当者 1 名 GitHub で見る

@alexander-alderman-webb がすでに取り組んでいます。

2026年6月12日 から。

評価

この issue はまだ評価されていません。

説明

2. High Feature Python

Native crash frames generated by Cython-compiled code appear as mangled C
symbols (e.g. __pyx_pw_6module_3func) in sentry-native stack traces, making
them unreadable without manual demangling. The Python SDK captures Cython
frames correctly at the Python level (.pyx file, line number), but when a
crash occurs in the native layer of a Cython extension, the native stack frames
shown in Sentry are opaque.

Current behavior

  • Python-level Cython frames (captured by sentry-python via sys.exc_info())
    show correct .pyx source file and line number
  • Native frames from the C code generated by Cython (captured by sentry-native
    on crash) show raw mangled symbols: __pyx_pw_6module_3func_1name,
    __pyx_f_6module_3ClassName_method, etc.
  • C++ demangling (__cxa_demangle) does not apply to Cython's naming scheme
  • No Cython-specific demangling exists in sentry-python or the Sentry backend

Gap

Cython uses a deterministic, documented symbol naming convention for the C code
it generates. A demangler can reconstruct the original Python-facing name from
a __pyx_* symbol:

  • __pyx_pw_<module>_<n><name> → Python wrapper for <module>.<name>
  • __pyx_f_<module>_<ClassName>_<method> → C-level function for
    <module>.<ClassName>.<method>

This demangling could be applied as a post-processing step in the
GnuBacktraceIntegration or as a standalone CythonIntegration, enriching
native frames with human-readable Cython source names before the event is sent
to Sentry.

Options

  1. Extend GnuBacktraceIntegration to detect and demangle __pyx_* symbols
    in parsed backtrace frames — lowest friction, reuses existing pipeline
  2. Add a standalone CythonIntegration event processor that post-processes
    all native frames across exception and crash events — cleaner separation,
    applicable beyond GnuBacktrace-formatted strings
  3. Implement server-side demangling in the Sentry symbolicator for __pyx_*
    symbols — transparent to SDK users, but requires changes outside this repo

References

Action taken on behalf of Angelo de Voer.

主要言語
Python
スター
2.2k
フォーク
672
平均マージ
22時間 47分
マージ済み PR(30日)
224

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

getsentry/sentry-python のほかの issue

getsentry/sentry-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。