Skip to content

Commit

Permalink
Merge branch 'master' into feature/wasm
Browse files Browse the repository at this point in the history
  • Loading branch information
mitsuhiko committed Aug 6, 2020
2 parents df9ab75 + de6bf9c commit f70fd29
Show file tree
Hide file tree
Showing 174 changed files with 9,236 additions and 8,492 deletions.
6 changes: 6 additions & 0 deletions .craft.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
minVersion: "0.9.0"
github:
owner: getsentry
repo: symbolic
Expand All @@ -8,3 +9,8 @@ targets:
- name: pypi
- name: github
changelogPolicy: simple
requireNames:
- /^symbolic-.*-py2.py3-none-macosx_10_13_x86_64.whl$/
- /^symbolic-.*-py2.py3-none-manylinux2010_i686.whl$/
- /^symbolic-.*-py2.py3-none-manylinux2010_x86_64.whl$/
- /^symbolic-.*.zip$/
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @getsentry/owners-native
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# OS
.DS_Store

# Rust
target/
**/*.rs.bk
Expand All @@ -13,3 +16,6 @@ __pycache__/

# C++
.vscode/ipch

# IDE files
.idea/
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
shallow = true
[submodule "minidump/third_party/lss"]
path = minidump/third_party/lss
url = https://chromium.googlesource.com/linux-syscall-support
url = https://github.com/getsentry/linux-syscall-support
58 changes: 32 additions & 26 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
language: rust
cache:
directories:
- $HOME/.cargo
- $TRAVIS_BUILD_DIR/target
- $TRAVIS_BUILD_DIR/cabi/target
os: linux

git:
depth: 1
Expand All @@ -14,49 +10,59 @@ after_success:
- npm install -g @zeus-ci/cli
- test "$DEPLOY" && ( zeus upload -t "application/zip+wheel" py/dist/* || exit 1 )

matrix:
jobs:
include:
# Rust test suite
- os: linux
script: make style
- script: make style-rust
env: TEST=style-rust
- os: linux
script: make lint
- script: make lint-rust
env: TEST=lint-rust CXX=clang
- os: linux
script: make test-rust
- script: make test-rust
env: TEST=linux-rust CXX=clang
- os: osx
script: make test-rust
env: TEST=mac-rust

# Python test suite
- os: linux
- name: "Python 3.7 Style/Linting"
language: python
python: "3.7"
script:
- make style-python
- make lint-python
env: TEST=style-python
- name: "Python 3.6 Tests (linux)"
before_install:
# multi-language jobs not currently possible, pyenv is used here.
# if we want later 3.6.x's it isn't possible AFAIK to update travis pyenv,
# so would need to install rustup + friends.
- pyenv install 3.6.3
- pyenv global 3.6.3
script: make test-python
env: TEST=linux-python CXX=clang
- os: osx
env: TEST=linux-python CXX=clang SYMBOLIC_DEBUG=1
- name: "Python 3.7 Tests (osx)"
os: osx
script: make test-python
env: TEST=mac-python
env: TEST=mac-python SYMBOLIC_DEBUG=1

# Build wheels
- os: osx
script: make wheel
- if: branch ~= /^release\/.+$/
os: osx
script: make wheel SYMBOLIC_PYTHON=python2
before_install: HOMEBREW_NO_AUTO_UPDATE=1 brew upgrade node
env: DEPLOY=mac-wheel
osx_image: xcode7.3
- os: linux
script: make wheel-manylinux IMAGE=quay.io/pypa/manylinux1_x86_64
osx_image: xcode9.4
- if: branch ~= /^release\/.+$/
script: make wheel-manylinux IMAGE=quay.io/pypa/manylinux2010_x86_64
env: DEPLOY=linux-x86_64-wheel
sudo: required
services:
- docker
- os: linux
script: make wheel-manylinux IMAGE=quay.io/pypa/manylinux1_i686
- if: branch ~= /^release\/.+$/
script: make wheel-manylinux IMAGE=quay.io/pypa/manylinux2010_i686
env: DEPLOY=linux-x86-wheel
sudo: required
services:
- docker
- os: linux
- if: branch ~= /^release\/.+$/
script: make sdist
env: DEPLOY=sdist

Expand Down
14 changes: 10 additions & 4 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"EditorConfig.editorconfig",
// C++ language support
"ms-vscode.cpptools",
"rust-lang.rust",
// TOML language support
"bungcip.better-toml",
"xoronic.pestfile",
"serayuzgur.crates"
// Rust language server
"matklad.rust-analyzer",
// Crates.io dependency versions
"serayuzgur.crates",
// Debugger support for Rust and native
"vadimcn.vscode-lldb",
// PEST syntax support
"xoronic.pestfile"
]
}
4 changes: 3 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
"rust-client.rlsPath": "rls",

// Python configuration
"python.pythonPath": "${workspaceFolder}/virtualenv/bin/python",
"python.pythonPath": ".venv/bin/python",
"python.linting.enabled": false,
"python.formatting.provider": "black",

// Created by CPP Extension
"files.associations": {
Expand Down
179 changes: 161 additions & 18 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,201 @@
# Changelog

## 7.4.0

**Deprecations**:

- `pointer_size`, `instruction_alignment` and `ip_register_name` have moved from `Arch` to `CpuFamily`.
- `Arch::register_name` as been moved to `CpuFamily::cfi_register_name`.
- Field access on `InstructionInfo` has been deprecated and replaced
with a builder.

**Changes**:

- More detailed documentation and examples on all types and functions in `symbolic-common`. ([#246](https://github.com/getsentry/symbolic/pull/247))

**Bug Fixes**:

- `CpuFamily::cfi_register_name` returns `None` instead of `Some("")` for some unknown registers.
- Update `cpp_demangle` again after the previous release was yanked. ([#247](https://github.com/getsentry/symbolic/pull/247))

## 7.3.6

**Bug Fixes**:

- Update the `cpp_demangle` dependency to fix broken builds after a breaking change. ([#244](https://github.com/getsentry/symbolic/pull/244), thanks @o0Ignition0o)

## 7.3.5

**Bug Fixes**:

- Update the `proguard` dependency to fix line info detection. ([#242](https://github.com/getsentry/symbolic/pull/242))

## 7.3.4

**Deprecations**:

- `symbolic-proguard` is now deprecated and will be removed in the next major release. Use the `proguard` crate directly. The C-bindings and Python interface will remain. ([#240](https://github.com/getsentry/symbolic/pull/240))

**Python**:

- Switch the C-ABI and python to `proguard 4.0.0` which supports frame remapping. ([#240](https://github.com/getsentry/symbolic/pull/240))

**Bug Fixes**:

- Fix broken links in docs on `ByteView`, `SelfCell` and `AsSelf`. ([#241](https://github.com/getsentry/symbolic/pull/241))

## 7.3.3

**Bug Fixes**:

- Update broken doc comments for `SelfCell` and `debuginfo::dwarf` ([#238](https://github.com/getsentry/symbolic/pull/238))
- Fix holes in line records of inline parents in DWARF ([#239](https://github.com/getsentry/symbolic/pull/239))

## 7.3.2

**Bug Fixes**:

- Fix line information of inline parents in DWARF ([#237](https://github.com/getsentry/symbolic/pull/237)). Many thanks to @calixteman!

## 7.3.1

**Bug Fixes**:

- Skip invalid PE runtime function entries ([#230](https://github.com/getsentry/symbolic/pull/230))
- Support demangling of block invocation functions ([#229](https://github.com/getsentry/symbolic/pull/229))
- Skip invalid CFI entries instead of erroring out ([#232](https://github.com/getsentry/symbolic/pull/232))
- Detect stub DLLs and skip CFI generation ([#233](https://github.com/getsentry/symbolic/pull/233))
- Skip functions with unknown unwind codes ([#234](https://github.com/getsentry/symbolic/pull/234))
- Update `goblin` to fix panics in PE unwinding ([#231](https://github.com/getsentry/symbolic/pull/231))
- Update `gimli` to to support `eh_frame` CIE version 3 ([#231](https://github.com/getsentry/symbolic/pull/231))
- Update `cpp_demangle` ([#231](https://github.com/getsentry/symbolic/pull/231))

## 7.3.0

**Build Changes**:

To build with the `demangle` feature, a C++14 compiler is now required.

**Features**:

- Support Swift 5.2 mangling ([#208](https://github.com/getsentry/symbolic/pull/208))
- Inline docs from sub-crates ([#209](https://github.com/getsentry/symbolic/pull/209))
- Add Path utilities for dSYM structures ([#212](https://github.com/getsentry/symbolic/pull/212))
- Updated C++ demangler ([#215](https://github.com/getsentry/symbolic/pull/215))

**Bug Fixes**:

- Do not error in functions iterator on name errors ([#201](https://github.com/getsentry/symbolic/pull/201))
- Avoid infinite recursion in DWARF because of self references ([#202](https://github.com/getsentry/symbolic/pull/202))
- Do not skip symbols from SHT_NOBIT sections ([#207](https://github.com/getsentry/symbolic/pull/207))
- Do not assume sorted DWARF compilation units ([#214](https://github.com/getsentry/symbolic/pull/214))
- Skip eliminated functions in linked objects ([#216](https://github.com/getsentry/symbolic/pull/216))
- Avoid panics for UTF-8 characters in paths ([#217](https://github.com/getsentry/symbolic/pull/217))
- Get CFI info from eh_frame even if err in debug_frame ([#218](https://github.com/getsentry/symbolic/pull/218))
- Avoid `TooManyRegisterRules` errors in CFI ([#219](https://github.com/getsentry/symbolic/pull/219))
- Calculate correct line record sizes for DWARF ([#220](https://github.com/getsentry/symbolic/pull/220))
- Detect all scopes to fix incorrect inlinee hierarchies ([#221](https://github.com/getsentry/symbolic/pull/221))
- Patch all parent line records of inlinees in DWARF ([#223](https://github.com/getsentry/symbolic/pull/223))
- Fix broken compilation with -Clink-dead-code ([#225](https://github.com/getsentry/symbolic/pull/225))
- Return the same instruction address for inlinees in symcaches ([#226](https://github.com/getsentry/symbolic/pull/226))

## 7.2.0

**Features**:

- Upgrade UUID-related dependencies ([#199](https://github.com/getsentry/symbolic/pull/199))

## 7.1.1

**Features**:

- Implement `serde::{Deserialize, Serialize}` for `ProcessResult` ([#188](https://github.com/getsentry/symbolic/pull/188))
- Implement `serde::{Deserialize, Serialize}` for `Name` ([#191](https://github.com/getsentry/symbolic/pull/191))
- Update the `gimli`, `goblin` and `pdb` libraries ([#196](https://github.com/getsentry/symbolic/pull/196))

**Bug Fixes**:

- Do not skip DWARF units with a `DW_AT_low_pc` of `0` ([#173](https://github.com/getsentry/symbolic/pull/173))
- Search for MachO sections in all segments ([#173](https://github.com/getsentry/symbolic/pull/173))
- Fix processing Hermes source maps with non-hermes stack frames ([#189](https://github.com/getsentry/symbolic/pull/189))
- Fix decompression of GNU compressed debug sections (`.zdebug_info`) ([#192](https://github.com/getsentry/symbolic/pull/192))

## 7.1.0

_This release is not available on crates.io_

**Features**:

- Support skipping over files when creating source bundles ([#167](https://github.com/getsentry/symbolic/pull/167))
- Support for React Native Hermes source maps ([#187](https://github.com/getsentry/symbolic/pull/187))

**Bug Fixes**:

- Resolved an error in processing DWARF CFI
- Resolved an error reading ELF fiels with stripped `PT_DYNAMIC` header
- Support for Breakpad functions without names
- Multiple fixes in PDB and PE file processing
- Fix compilation with MSVC ([#164](https://github.com/getsentry/symbolic/pull/164))
- Added unmapped MachO object types ([#169](https://github.com/getsentry/symbolic/pull/169))
- Proper detection for ELF stripped debug companion files ([#170](https://github.com/getsentry/symbolic/pull/170))
- Detect Java class files which share the same magic as MachO files ([#172](https://github.com/getsentry/symbolic/pull/172))
- Fix memory leaks in the python binding ([#180](https://github.com/getsentry/symbolic/pull/180))

## 7.0.0

_This release is not available on crates.io_

**New Features**:

- A new API to parse Unreal Engine 4 Crash reports (#152).
- Source bundles to resolve source code for stack frames (#154).
- Inline functions for Microsoft PDBs (#160).
- A new API to parse Unreal Engine 4 Crash reports ([#152](https://github.com/getsentry/symbolic/pull/152)).
- Source bundles to resolve source code for stack frames ([#154](https://github.com/getsentry/symbolic/pull/154)).
- Inline functions for Microsoft PDBs ([#160](https://github.com/getsentry/symbolic/pull/160)).
- Improved demangling of C++ symbols.

**Bug Fixes**:

- Resolved unexpected EOF when parsing certain PDBs.
- Restored compatibility with Python 3 (#158).
- Restored compatibility with Python 3 ([#158](https://github.com/getsentry/symbolic/pull/158)).

## 6.1.4

**Common**:

- Add `ARM64_32` (ILP32 ABI on 64-bit ARM) (#149).
- Support architecture names from apple crash reports (#151).
- Add `ARM64_32` (ILP32 ABI on 64-bit ARM) ([#149](https://github.com/getsentry/symbolic/pull/149)).
- Support architecture names from apple crash reports ([#151](https://github.com/getsentry/symbolic/pull/151)).

**DebugInfo**:

- Fix invalid memory addresses for some ELF files (#148).
- Prefer a PDB's age from the DBI stream (#150).
- Do not emit default CFI for the `.ra` register (#157).
- Fix invalid memory addresses for some ELF files ([#148](https://github.com/getsentry/symbolic/pull/148)).
- Prefer a PDB's age from the DBI stream ([#150](https://github.com/getsentry/symbolic/pull/150)).
- Do not emit default CFI for the `.ra` register ([#157](https://github.com/getsentry/symbolic/pull/157)).

**Minidump**:

- Fix a memory leak when processing minidumps (#146).
- Fix a memory leak when processing minidumps ([#146](https://github.com/getsentry/symbolic/pull/146)).

**SymCache**:

- Add `is_latest()` to symcaches and CFI caches.
- Support functions with more than 65k line records (#155).
- Support functions with more than 65k line records ([#155](https://github.com/getsentry/symbolic/pull/155)).

## 6.1.3

**Common**:

- Support MIPS and MIPS64 (#141).
- Support MIPS and MIPS64 ([#141](https://github.com/getsentry/symbolic/pull/141)).

**DebugInfo**:

- Fix code identifiers for PE files and do not return empty ones (#139, #142).
- Support Breakpad debug identifiers without an age field (#140).
- Add `Archive::is_multi` to check for multi-architecture archives (#143).
- Fix code identifiers for PE files and do not return empty ones ([#139](https://github.com/getsentry/symbolic/pull/139), #142).
- Support Breakpad debug identifiers without an age field ([#140](https://github.com/getsentry/symbolic/pull/140)).
- Add `Archive::is_multi` to check for multi-architecture archives ([#143](https://github.com/getsentry/symbolic/pull/143)).

**Minidump**:

- Add more trait implementations to minidump processor types.
- Process minidumps without thread lists (#144).
- Update the breakpad processor. This allows to stackwalk Unreal Engine 4 minidumps (#145).
- Process minidumps without thread lists ([#144](https://github.com/getsentry/symbolic/pull/144)).
- Update the breakpad processor. This allows to stackwalk Unreal Engine 4 minidumps ([#145](https://github.com/getsentry/symbolic/pull/145)).

## 6.1.2

Expand Down Expand Up @@ -80,7 +223,7 @@

## 6.0.5

- Normalize code identifiers to lowercase (#133).
- Normalize code identifiers to lowercase ([#133](https://github.com/getsentry/symbolic/pull/133)).

## 6.0.4

Expand Down
Loading

0 comments on commit f70fd29

Please sign in to comment.