Skip to content

fix(wasm): document support and adoption of build_id section #14597

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
debugging, but have shortcomings that make them impractical for a crash reporting
tool like Sentry.

Since WASM does not specify debug/build IDs yet, we provide a separate tool to
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).

In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
to help you create a debug companion file ready for uploading to Sentry
while removing all debug information from the release binary.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ for symbolication.

## WASM Build IDs

WebAssembly does not yet support build IDs. The option proposed to
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
has not yet found widespread adoption. Instead, we use a custom
extension to WebAssembly.

Our recommendation is to embed a UUID in the `build_id` custom section as
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can do this for you automatically.
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).

`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).

Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
a split an extract debug information from your `*.wasm` file.

## ProGuard UUIDs

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
debugging, but have shortcomings that make them impractical for a crash reporting
tool like Sentry.

Since WASM does not specify debug/build IDs yet, we provide a separate tool to
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).

In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
to help you create a debug companion file ready for uploading to Sentry
while removing all debug information from the release binary.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ for symbolication.

## WASM Build IDs

WebAssembly does not yet support build IDs. The option proposed to
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
has not yet found widespread adoption. Instead, we use a custom
extension to WebAssembly.

Our recommendation is to embed a UUID in the `build_id` custom section as
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can do this for you automatically.
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).

`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).

Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
a split an extract debug information from your `*.wasm` file.

## ProGuard UUIDs

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
debugging, but have shortcomings that make them impractical for a crash reporting
tool like Sentry.

Since WASM does not specify debug/build IDs yet, we provide a separate tool to
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).

In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
to help you create a debug companion file ready for uploading to Sentry
while removing all debug information from the release binary.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ for symbolication.

## WASM Build IDs

WebAssembly does not yet support build IDs. The option proposed to
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
has not yet found widespread adoption. Instead, we use a custom
extension to WebAssembly.

Our recommendation is to embed a UUID in the `build_id` custom section as
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can do this for you automatically.
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).

`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).

Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
a split an extract debug information from your `*.wasm` file.

## ProGuard UUIDs

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
debugging, but have shortcomings that make them impractical for a crash reporting
tool like Sentry.

Since WASM does not specify debug/build IDs yet, we provide a separate tool to
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).

In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
to help you create a debug companion file ready for uploading to Sentry
while removing all debug information from the release binary.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ for symbolication.

## WASM Build IDs

WebAssembly does not yet support build IDs. The option proposed to
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
has not yet found widespread adoption. Instead, we use a custom
extension to WebAssembly.

Our recommendation is to embed a UUID in the `build_id` custom section as
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can do this for you automatically.
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).

`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).

Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
a split an extract debug information from your `*.wasm` file.

## ProGuard UUIDs

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,11 @@ Note that we do not support source maps, which are also a format used for WASM
debugging, but have shortcomings that make them impractical for a crash reporting
tool like Sentry.

Since WASM does not specify debug/build IDs yet, we provide a separate tool to
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).

In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
to help you create a debug companion file ready for uploading to Sentry
while removing all debug information from the release binary.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,14 @@ for symbolication.

## WASM Build IDs

WebAssembly does not yet support build IDs. The option proposed to
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
has not yet found widespread adoption. Instead, we use a custom
extension to WebAssembly.

Our recommendation is to embed a UUID in the `build_id` custom section as
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can do this for you automatically.
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).

`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).

Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
a split an extract debug information from your `*.wasm` file.

## ProGuard UUIDs

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ debug identifier. See [_Checking Debug Information Files_](/cli/dif/#checking-fi

## WASM Build IDs

WebAssembly does not yet support build IDs. The option proposed to
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
has not yet found widespread adoption. Instead, we use a custom
extension to WebAssembly.

Our recommendation is to embed a UUID in the `build_id` custom section as
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can do this for you automatically.
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).

`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).

Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
a split an extract debug information from your `*.wasm` file.

<PlatformContent includePath="debug-files-identifiers-proguard" />
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
debugging, but have shortcomings that make them impractical for a crash reporting
tool like Sentry.

Since WASM does not specify debug/build IDs yet, we provide a separate tool to
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).

In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
to help you create a debug companion file ready for uploading to Sentry
while removing all debug information from the release binary.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ for symbolication.

## WASM Build IDs

WebAssembly does not yet support build IDs. The option proposed to
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
has not yet found widespread adoption. Instead, we use a custom
extension to WebAssembly.

Our recommendation is to embed a UUID in the `build_id` custom section as
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can do this for you automatically.
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).

`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).

Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
a split an extract debug information from your `*.wasm` file.

## ProGuard UUIDs

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
debugging, but have shortcomings that make them impractical for a crash reporting
tool like Sentry.

Since WASM does not specify debug/build IDs yet, we provide a separate tool to
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).

In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
to help you create a debug companion file ready for uploading to Sentry
while removing all debug information from the release binary.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ for symbolication.

## WASM Build IDs

WebAssembly does not yet support build IDs. The option proposed to
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
has not yet found widespread adoption. Instead, we use a custom
extension to WebAssembly.

Our recommendation is to embed a UUID in the `build_id` custom section as
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can do this for you automatically.
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).

`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).

Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
a split an extract debug information from your `*.wasm` file.

## ProGuard UUIDs

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
debugging, but have shortcomings that make them impractical for a crash reporting
tool like Sentry.

Since WASM does not specify debug/build IDs yet, we provide a separate tool to
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).

In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
to help you create a debug companion file ready for uploading to Sentry
while removing all debug information from the release binary.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,14 @@ for symbolication.

## WASM Build IDs

WebAssembly does not yet support build IDs. The option proposed to
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
has not yet found widespread adoption. Instead, we use a custom
extension to WebAssembly.

Our recommendation is to embed a UUID in the `build_id` custom section as
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can do this for you automatically.
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).

`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).

Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
a split an extract debug information from your `*.wasm` file.

## ProGuard UUIDs

Expand Down