[AArch64] Fragment prefix size ASSERT failure with -shared_bb_ibt_tables
Running simple_app
under DR with -shared_bb_ibt_tables
option leads to the following assert failure:
$ bin64/drrun -shared_bb_ibt_tables -- suite/tests/bin/simple_app
<Starting application dynamorio/suite/tests/bin/simple_app (95016)>
<Initial options = -no_dynamic_options -code_api -stack_size 56K -signal_stack_size 32K -max_elide_jmp 0 -max_elide_call 0 -shared_bb_ibt_tables -early_inject -emulate_brk -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct >
<Application dynamorio/suite/tests/bin/simple_app (95016). Internal Error: DynamoRIO debug check failure: dynamorio/core/arch/aarch64/emit_utils.c:386 f->prefix_size == fragment_prefix_size(f->flags)
This is because fragment_prefix_size
returns zero for some cases.
The assert failure goes away with -bb_prefixes
. Probably just need to set default to true for AArch64, where fragments do have a prefix.