Skip to content

Document PDB symbol files for obfuscated Windows x64 builds - #13787

Open
linzj wants to merge 1 commit into
flutter:mainfrom
linzj:obfuscate-windows-pdb
Open

Document PDB symbol files for obfuscated Windows x64 builds#13787
linzj wants to merge 1 commit into
flutter:mainfrom
linzj:obfuscate-windows-pdb

Conversation

@linzj

@linzjlinzj commented Aug 23, 2026

Copy link
Copy Markdown

Summary

With PE/COFF AOT snapshots (flutter/flutter#187594), Windows x64 builds using --split-debug-info produce a PDB file (app.windows-x64.pdb) instead of an app.windows-x64.symbols DWARF file, and flutter symbolize doesn't support PDB files.

This updates the obfuscation docs to:

  • Note that Windows x64 builds generate app.windows-x64.pdb instead of a SYMBOLS file.
  • Note that flutter symbolize doesn't support PDB files, and that stack traces from obfuscated Windows x64 builds are read with a Windows debugger (for example, WinDbg) and the PDB file.

Do not merge until flutter/flutter#187594 lands and reaches the stable channel, since this page documents stable-channel behavior.

Fixes the docs question raised in flutter/flutter#187594 (comment)

With PE/COFF AOT snapshots (flutter/flutter#187594), Windows x64
builds with --split-debug-info produce a PDB file
(app.windows-x64.pdb) instead of a .symbols file, and
flutter symbolize doesn't support PDB files.
Note: this should land after the PE/COFF AOT change reaches the
stable channel.
@linzj
linzj requested review from a team and sfshaza2 as code ownersAugust 23, 2026 23:22

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the obfuscation documentation to include specific instructions for Windows x64 builds, noting that they generate a PDB file instead of a SYMBOLS file and require a Windows debugger like WinDbg. The review feedback suggests improving consistency by referencing the PDB file in the backup instructions and moving the Windows-specific note to the beginning of the stack trace section to prevent Windows users from following unnecessary steps.

Comment on lines 101 to 105
1. Once you've obfuscated your binary, **backup
the SYMBOLS file**. You might need this if you lose
the SYMBOLS file** (or the PDB file on Windows x64).
You might need this if you lose
your original SYMBOLS file and you
want to de-obfuscate a stack trace.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To maintain consistency with the updated instruction to back up either the SYMBOLS file or the PDB file, we should also update the next sentence to refer to both file types.

Suggested change
1. Once you've obfuscated your binary, **backup
the SYMBOLS file**. You might need this if you lose
the SYMBOLS file** (or the PDB file on Windows x64).
You might need this if you lose
your original SYMBOLS file and you
want to de-obfuscate a stack trace.
1. Once you've obfuscated your binary, **backup
the SYMBOLS file** (or the PDB file on Windows x64).
You might need this if you lose
your original SYMBOLS file (or PDB file) and you
want to de-obfuscate a stack trace.

Comment on lines +134 to +141
:::note
On Windows x64, `--split-debug-info` generates a PDB file
instead of a SYMBOLS file,
and the `flutter symbolize` command doesn't support
PDB files. To read a stack trace from an obfuscated
Windows x64 build, load the PDB file in a Windows
debugger such as WinDbg.
:::

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Since Windows x64 users do not use the flutter symbolize tool at all, placing this note at the end of the step-by-step guide (and nested under step 2) might lead them to follow steps 1 and 2 unnecessarily before realizing they need a different workflow.

Consider moving this note to the very beginning of the Read an obfuscated stack trace section (right after the introductory sentence on line 110) as a top-level (unindented) block so Windows users see it immediately.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@linzj