Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
185 changes: 97 additions & 88 deletions .lore.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/src/content/docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ cli/
│ │ ├── code-mappings/# upload
│ │ ├── dart-symbol-map/# upload
│ │ ├── dashboard/ # add, create, delete, edit, list, restore, revisions, view
│ │ ├── debug-files/ # bundle-jvm, bundle-sources, check, print-sources
│ │ ├── debug-files/ # bundle-jvm, bundle-sources, check, print-sources, upload
│ │ ├── event/ # list, send, view
│ │ ├── issue/ # archive, events, explain, list, merge, plan, resolve, unresolve, view
│ │ ├── local/ # run, serve
Expand Down
21 changes: 21 additions & 0 deletions docs/src/fragments/commands/debug-files.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,17 @@ sentry debug-files bundle-jvm --output ./out --debug-id <uuid> --exclude generat

# Output as JSON
sentry debug-files bundle-jvm --output ./out --debug-id <uuid> --json ./src

# Upload debug information files (scans directories recursively)
sentry debug-files upload ./build
sentry debug-files upload ./libexample.so --include-sources

# Restrict by type or debug id, and wait for server-side processing
sentry debug-files upload ./dsyms --type dsym --wait
sentry debug-files upload ./build --id <debug-id> --require-all

# Preview what would be uploaded without uploading (no credentials needed)
sentry debug-files upload ./build --no-upload
```

## Important Notes
Expand All @@ -44,6 +55,16 @@ sentry debug-files bundle-jvm --output ./out --debug-id <uuid> --json ./src
files that are not present locally are skipped; it exits non-zero (writing
nothing) when none are found. The bundle defaults to `<path>.src.zip` and is
uploaded via `sentry debug-files upload`.
- `upload` scans each path (files or directories, walked recursively) for
native debug information files, parses them in-process, and uploads matching
files via the chunk-upload protocol. Use `--type`/`--id` to restrict which
files are sent, `--no-debug`/`--no-unwind`/`--no-sources` to drop files whose
only useful feature is the named one, and `--include-sources` to attach a
source bundle per file. `--no-upload` previews the selection without
credentials; `--wait`/`--wait-for` block on server-side processing and exit
non-zero if any file fails. `--require-all` fails if a requested `--id` was not
found. Scanning inside ZIP archives, `--symbol-maps`, `--il2cpp-mapping` line
mappings, and `--derived-data` are not yet supported.
- Upload a JVM bundle separately via `sentry debug-files upload --type jvm`.
- Supported JVM source file extensions: `.java`, `.kt`, `.scala`, `.sc`,
`.groovy`, `.gvy`, `.gy`, `.gsh`, `.clj`, `.cljc`
Expand Down
1 change: 1 addition & 0 deletions plugins/sentry-cli/skills/sentry-cli/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@ Work with Dart/Flutter symbol maps
Work with debug information files

- `sentry debug-files check <path>` — Inspect a debug information file
- `sentry debug-files upload <path...>` — Upload debug information files to Sentry
- `sentry debug-files print-sources <path>` — List the source files a debug file references
- `sentry debug-files bundle-sources <path>` — Bundle a debug file's source files for source context
- `sentry debug-files bundle-jvm <path>` — Create a JVM source bundle for source context
Expand Down
27 changes: 27 additions & 0 deletions plugins/sentry-cli/skills/sentry-cli/references/debug-files.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,22 @@ Work with debug information files

Inspect a debug information file

### `sentry debug-files upload <path...>`

Upload debug information files to Sentry

**Flags:**
- `-t, --type <value>... - Only upload files of this type (repeatable): dsym, elf, pe, pdb, portablepdb, wasm, breakpad, sourcebundle, jvm`
- `--id <value>... - Only upload the object with this debug id (repeatable)`
- `--require-all - Fail if any --id value was not found among scanned files`
- `--no-debug - Do not upload files whose only feature is debug/symbol info`
- `--no-unwind - Do not upload files whose only feature is unwind info`
- `--no-sources - Do not upload files whose only feature is source info`
- `--include-sources - Build and upload a source bundle for each file with debug info`
- `--no-upload - Scan and print what would be uploaded without uploading`
- `--wait - Wait for server-side processing and report any errors`
- `--wait-for <value> - Wait up to this many seconds for server-side processing`

### `sentry debug-files print-sources <path>`

List the source files a debug file references
Expand Down Expand Up @@ -59,6 +75,17 @@ sentry debug-files bundle-jvm --output ./out --debug-id <uuid> --exclude generat

# Output as JSON
sentry debug-files bundle-jvm --output ./out --debug-id <uuid> --json ./src

# Upload debug information files (scans directories recursively)
sentry debug-files upload ./build
sentry debug-files upload ./libexample.so --include-sources

# Restrict by type or debug id, and wait for server-side processing
sentry debug-files upload ./dsyms --type dsym --wait
sentry debug-files upload ./build --id <debug-id> --require-all

# Preview what would be uploaded without uploading (no credentials needed)
sentry debug-files upload ./build --no-upload
```

All commands also support `--json`, `--fields`, `--help`, `--log-level`, and `--verbose` flags.
2 changes: 2 additions & 0 deletions src/commands/debug-files/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@ import { bundleJvmCommand } from "./bundle-jvm.js";
import { bundleSourcesCommand } from "./bundle-sources.js";
import { checkCommand } from "./check.js";
import { printSourcesCommand } from "./print-sources.js";
import { uploadCommand } from "./upload.js";

export const debugFilesRoute = buildRouteMap({
routes: {
check: checkCommand,
upload: uploadCommand,
"print-sources": printSourcesCommand,
"bundle-sources": bundleSourcesCommand,
"bundle-jvm": bundleJvmCommand,
Expand Down
Loading
Loading