# aarch64-esr-decoder
[](https://crates.io/crates/aarch64-esr-decoder)
[](https://docs.rs/aarch64-esr-decoder)
A small utility for decoding aarch64 ESR register values.
This is not an officially supported Google product.
## Usage
Install a Debian package from the
[latest release](https://github.com/google/aarch64-esr-decoder/releases/tag/0.2.0), install with
`cargo install aarch64-esr-decoder`, or
[try the web version](https://google.github.io/aarch64-esr-decoder/).
For the command-line version, just pass the ESR value you're interested in as a parameter, in
decimal or hexadecimal:
```
$ aarch64-esr-decoder 0x96000050
ESR 0x00000000000000000000000096000050:
# Data Abort taken without a change in Exception level
37..63 RES0: 0x0000000 0b000000000000000000000000000
32..36 ISS2: 0x00 0b00000
26..31 EC: 0x25 0b100101
# Data Abort taken without a change in Exception level
25 IL: true
# 32-bit instruction trapped
00..24 ISS: 0x0000050 0b0000000000000000001010000
24 ISV: false
# No valid instruction syndrome
14..23 RES0: 0x000 0b0000000000
13 VNCR: false
11..12 SET: 0x0 0b00
# Recoverable state (UER)
10 FnV: false
# FAR is valid
09 EA: false
08 CM: false
07 S1PTW: false
06 WnR: true
# Abort caused by writing to memory
00..05 DFSC: 0x10 0b010000
# Synchronous External abort, not on translation table walk or hardware update of translation table.
```
For long field names, add `-v`.
## License
Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
## Contributing
If you want to contribute to the project, see details of
[how we accept contributions](CONTRIBUTING.md).