The output is designed in such way that the most important information is printed in the end, so that you don't need to scroll. It first prints every instruction that lacks a core theory representation (semantics). Each instruction is printed with its address, bytes, assembly string (if present) and with the Primus Lisp function call that will be made to obtain the semantics of this instruction.
Next, it prints histogram of missed instructions, sorted by the number of occurrences of the opcodes, so that you can focus on the most missing instructions first. In our case, we see that most of the instructions are just nops, but there are also two non-trivial instructions that we missed.
The histogram is followed by the statistics of lifted (have semantics), failed (no disassembly at all), and missed (no semantics) instructions. The sum of three statistics will give you the total number of instructions in the Knowledge Base (KB), which may differ from the total number of instructions that you see from the output of -dasm, as the former includes the unreachable instructions as well.
When this option is specified, the cache is not used to load the program and the binary is disassembled from scratch.
This is a quality of life feature intended for the lifter writers. Here is the sample output,
The output is designed in such way that the most important information is printed in the end, so that you don't need to scroll. It first prints every instruction that lacks a core theory representation (semantics). Each instruction is printed with its address, bytes, assembly string (if present) and with the Primus Lisp function call that will be made to obtain the semantics of this instruction.
Next, it prints histogram of missed instructions, sorted by the number of occurrences of the opcodes, so that you can focus on the most missing instructions first. In our case, we see that most of the instructions are just nops, but there are also two non-trivial instructions that we missed.
The histogram is followed by the statistics of lifted (have semantics), failed (no disassembly at all), and missed (no semantics) instructions. The sum of three statistics will give you the total number of instructions in the Knowledge Base (KB), which may differ from the total number of instructions that you see from the output of
-dasm
, as the former includes the unreachable instructions as well.When this option is specified, the cache is not used to load the program and the binary is disassembled from scratch.