I am currently working on porting DrMemory to AArch64 over the next few months.
I have been progressing through fixing the build errors and have come to the 'is_retaddr' function on line 1040:
DrMemory - callstack.c., which is used by the 'print_callstack' function.
I am wondering if this kind of functionality would be better off in DynamoRIO, or if we could somehow externalise this unwinding functionality (and perhaps other functionality), with a dependancy to another more comprehensively maintained project like llvm.
It seems 'is_retaddr' is checking the previously executed memory but doing arithmetic on the PC, but this isn't guaranteed to be safe as far as I can tell.
I can fix this particular build error in a similar way to what's already been done and continue on my path for now, but thought it might be a good conversation to start here.