ASSERT: aarch64 instr_encode_arch() fails to honor check_reachable param
This was raised here: https://groups.google.com/forum/#!topic/DynamoRIO-Users/lqxQpY6GllM
Pasting from there:
This looks like a bug in the aarch64 encoder when encoding solely to print, based on looking at your log file. That's why it's debug-only. I think the bug is that the aarch64 encoder ignores the parameter "check_reachable" which is set to false for disassembly. Branch reachability is supposed to be ignored since this is not a real encoding but just a disassembly.
It's not clear why A) it thinks it needs to encode at all, since it's an L3 instr; and B) why this doesn't happen on the prior 2 prints: presumably b/c they realize they don't need to encode. Probably the final branch is tweaked before the "before mangling" print or sthg and it shows up as needing encoding despite printing L3.
Details from the log:
before instrumentation:
TAG 0x0000007f9bd10fc0
+0 L3 910003e0 add %sp $0x0000 lsl $0x00 -> %x0
+4 L3 94000cac bl $0x0000007f9bd14274
END 0x0000007f9bd10fc0
CLEANCALL: insert clean call to 0x000000000003b690
after instrumentation:
TAG 0x0000007f9bd10fc0
...
+436 L3 910003e0 add %sp $0x0000 lsl $0x00 -> %x0
+440 L3 94000cac bl $0x0000007f9bd14274
END 0x0000007f9bd10fc0
bb ilist before mangling:
TAG 0x0000007f9bd10fc0
...
+436 L3 910003e0 add %sp $0x0000 lsl $0x00 -> %x0
+440 L3 94000cac bl $0x0000007f9bd14274
SYSLOG_ERROR: Application ... (15543). Internal Error: DynamoRIO debug check failure: Not implemented @.../core/arch/aarch64/codec.c:2603 (0)