omjavaid added a comment. In D100515#2690225 <https://reviews.llvm.org/D100515#2690225>, @jasonmolenda wrote:
> Thanks Jonas, I think this change to Process can cover > > Omair's use case, where the number of bits are used hardcoded. > > The Darwin use case were ProcessGDBRemote, DynamicLoaderDarwinKernel, and > ProcessMachCore can all set the number of bits used in addressing > programmatically, detected at runtime. > > The firmware use case where people (often in a python script in a dSYM) can > set the number of bits manually so it is correct in their environment, when > the dynamic detection schemes are not available. This looks very good and I have couple of highlights to make from Linux/AArch64 perspective: qHostInfo is not sufficient for mask calculation on Linux because both data/code ptr auth masks are read by thread register context (both masks are currently same and they same for all the threads of a process). IMO moving the mask calculation to ABI GetCodeAddress method may be a better option. We can pull in information of addressable bits from process and also read register context for code/data masks by passing threadsp to ABI::GetCodeAddress. But in case we dont get agreement on moving mask calculation to ABI we can calculate mask somewhere inside ProcessGDBRemote and set it from there.... similar to what I have done in D99947 <https://reviews.llvm.org/D99947>. > Justin's case where ptrace(PTRACE_GETREGSET) gets us a code and data address > mask. > > Canonicalizing them as masks in Process, accepting either form, and providing > the value as a mask, should make it easy to use in the ABI plugins where we > have a FixCodeAddress and FixDataAddress. > > On Darwin, we use the same number of bits for both code and data, but given > the way ptrace() behaves on Linux, I'm guessing this may not be the case > everywhere. Should we store both masks, and add FixCodeAddress + > FixDataAddress methods in the ABI's, Justin? What do you think? > > The Darwin support can be adapted to this centralized scheme that Jonas has > written easily. Everyone else OK with this? > > I don't feel strongly about the method name. Justin used > Process::GetPointerAuthenticationAddressMask which makes it sound specific to > ARM v8.3 ptrauth. The ARM v8.5 MTE tagging might be another use case (or TBI > as Omair has noted). CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100515/new/ https://reviews.llvm.org/D100515 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits