#stack-trace #unreal-engine #javascript #source-map #symbolication #minidumps

symbolic

一个用于对原生应用程序、最小化数据转储、Unreal Engine 4或最小化JavaScript的堆栈跟踪进行符号化和处理的库

115个稳定版本 (11个主要版本)

12.10.0 2024年7月24日
12.8.0 2023年12月1日
12.7.1 2023年11月29日
12.3.0 2023年7月19日
1.1.5 2017年12月2日

#52 in 调试

Download history 3395/week @ 2024-05-01 1940/week @ 2024-05-08 2286/week @ 2024-05-15 2245/week @ 2024-05-22 3267/week @ 2024-05-29 3882/week @ 2024-06-05 2579/week @ 2024-06-12 1469/week @ 2024-06-19 2019/week @ 2024-06-26 2018/week @ 2024-07-03 2892/week @ 2024-07-10 3079/week @ 2024-07-17 3585/week @ 2024-07-24 2735/week @ 2024-07-31 3397/week @ 2024-08-07 2185/week @ 2024-08-14

每月下载量 12,896
用于 11 个crate(7个直接使用)

MIT 许可证

470KB
9K SLoC

Rust 6K SLoC // 0.1% comments C++ 3K SLoC // 0.0% comments Python 23 SLoC

Build Status

symbolic

Symbolic 是一个用Rust编写的库,它用于在 Sentry 中实现原生堆栈跟踪的符号化、最小化JavaScript的源映射处理等功能。它由多个在很大程度上独立的crate组成,这些crate被捆绑成一个C和Python库,以便它可以独立于Rust使用。

包内容

Symbolic提供了以下功能

  • 基于自定义缓存文件(symcache)的符号化
  • 从以下内容生成符号缓存文件
    • Mach、ELF和PE符号表
    • Mach和ELF嵌入式DWARF数据
    • PDB CodeView调试信息
    • Breakpad符号文件
  • Demangling支持
    • C++(GCC、clang和MSVC)
    • Objective C / Objective C++
    • Rust
    • Swift
  • JavaScript源映射扩展
    • 基本令牌映射
    • 基于最小化源代码查找原始函数名的启发式方法
    • 索引源映射到源映射合并
  • 最小化数据转储 / Breakpad处理
    • 从Mach、ELF和PDB生成Breakpad符号文件
    • 处理最小化数据转储以检索堆栈跟踪
  • 方便的C和Python库
  • 处理Unreal Engine 4原生崩溃报告
    • 提取和处理最小化数据转储
    • 公开日志和UE4上下文信息

用法

symbolic 添加为您的 Cargo.toml 的依赖项。您可能希望激活一些功能

  • debuginfo (默认): 包含对各种目标文件格式和调试信息的支持。目前包括 MachO 和 ELF(带 DWARF 调试)、PE 和 PDB,以及 Breakpad 符号。
  • demangle:Rust、C++、Swift 和 Objective C 符号的解混淆。此功能需要在 PATH 中安装 C++14 编译器。
  • minidump:Breakpad Minidump 处理器的 Rust 绑定。此外,还包括从对象文件中提取堆栈回溯信息(有时称为 CFI)的功能。此功能需要在 PATH 中安装 C++11 编译器。
  • sourcemap:JavaScript 源映射的处理和展开,以及查找压缩函数名称。
  • symcache:一种优化、平台无关的常见调试信息存储。这允许将指令地址快速符号化为函数名称和文件位置。
  • unreal:处理 Unreal Engine 4 崩溃报告。

还有一些上述功能的替代版本,这些版本还增加了在适当类型上的 serde{Deserialize, Serialize} 实现。

  • common-serde
  • debuginfo-serde
  • minidump-serde
  • unreal-serde

最小 Rust 版本

此crate已知至少需要Rust 1.41。

许可证:MIT

依赖关系

~0.4–8.5MB
~83K SLoC