Symbolication

Summary

This is the Mozilla Symbolication Server. It exposes an API for converting memory addresses to symbols using debug information uploaded during builds of Mozilla products. It relies on the Symbolic library for parsing debug information files and looking up addresses.

API

For detailed API and usage information, see the API documentation.

Python example:


import requests

# Payload consists of one job with a single stack to be symbolicated.
#
# Note that these debug files may no longer exist, so this may not symbolicate
# well.
payload = {
  "jobs": [
    {
      "memoryMap": [
        [
          "xul.pdb",                           # debug filename
          "44E4EC8C2F41492B9369D6B9A059577C2"  # debug id
        ],
        [
          "wntdll.pdb",                        # debug filename
          "D74F79EB1F8D4A45ABCD2F476CCABACC2"  # debug id
        ]
      ],
      "stacks": [
        [
          [0, 11723767],                       # module index 0, module offset (dec) 11723767
          [1, 65802]                           # module index 1, module offset (dec) 65802
        ]
      ]
    }
  ]
}

# Please use a unique user agent. It helps us debug issues, size the
# servers based on load, and notify users of changes and migrations.
headers = {
  "User-Agent": "example-agent/1.0 (+https://example.com/)",
}

resp = requests.post(
  "https://symbolication.services.mozilla.com/symbolicate/v5",
  headers=headers,
  json=payload,
)

print(resp.json())
          

Code

Code for the Symbolication server.

Bugs

Found a problem? Please file a bug.