ASSERT wrong isa mode on signal redirect and delivery on ARM: regression from kernel xfer event feature
I'm porting the client.signal test to ARM and it hits this assert:
Redirected
Sending SIGUSR2
signal event 8 sig=12
kernel_xfer_event: type 9, sig 12
<Application /home/derek/dr/git/build_dbg_tests/suite/tests/bin/client.signal (1540). Internal Error: DynamoRIO debug check failure: /home/derek/dr/git/src/core/dispatch.c:491 dr_get_isa_mode(dcontext) == FRAG_ISA_MODE(targetf->flags) IF_X64(|| (dr_get_isa_mode(dcontext) == DR_ISA_IA32 && !FRAG_IS_32(targetf->flags) && DYNAMO_OPTION(x86_to_x64)))
Looks like the kernel_xfer_event additional calls are re-calling canonicalize_pc_target() which can't be called twice: the ISA mode is lost then.