DavidSpickett wrote:

On the face of it

> When we have an unset high memory address mask, and we are told to set low- 
> and high-memory to the same new address mask, maintain the high memory mask 
> as unset in Process. The same thing is done with the 
> SBProcess::SetAddressMask API when the user specifies 
> lldb.eAddressMaskRangeAll.

Seems to itself be confusing and if you're doing this to address

> When high memory has a different set of masks, those become active in Process 
> and the user can use highmem-virtual-addressable-bits to override only the 
> highmem value, if it is wrong.

You're adding one gotcha to avoid another.

However, I think the result of the highmem mask being unset is the same as 
setting both masks to the same value. Except that `virtual-addressable-bits` 
will now effectively apply to both masks, until the user sets *only* the high 
mask to some value. At that point, `highmem-virtual-addressable-bits` must be 
used to modify the high mem value.

Correct?

So this doesn't actually change anything for an API user that was setting 
address masks for high and low all at once. They'll still think both are the 
same value, but *internally*, lldb tries high, see's that it's unset, and falls 
back to the low mask.

https://github.com/llvm/llvm-project/pull/90533
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to