JDevlieghere added inline comments.
================
Comment at: lldb/tools/debugserver/source/DNB.cpp:1830-1837
+ static bool g_tried_addressing_bits_syscall = false;
+ if (g_tried_addressing_bits_syscall == false) {
+ size_t len = sizeof(uint32_t);
+ if (::sysctlbyname("machdep.virtual_address_size", &g_addressing_bits,
&len,
+ NULL, 0) != 0) {
+ g_addressing_bits = 0;
+ }
----------------
A more C++ and thread safe way of doing this is:
```
static std::once_flag g_once_flag;
std::call_once(g_once_flag, [&](){
size_t len = sizeof(uint32_t);
if (::sysctlbyname("machdep.virtual_address_size", &g_addressing_bits,
&len,
NULL, 0) != 0) {
g_addressing_bits = 0;
}
}
```
================
Comment at: lldb/tools/debugserver/source/DNB.cpp:1840-1843
+ if (addressing_bits > 0)
+ return true;
+ else
+ return false;
----------------
```return g_addressing_bits > 0```
================
Comment at:
lldb/tools/debugserver/source/MacOSX/arm64/DNBArchImplARM64.cpp:98-100
+ uint32_t addressing_bits = 0;
+ if (!DNBGetAddressingBits(addressing_bits) || addressing_bits == 0)
+ return value;
----------------
Doesn't `DNBGetAddressingBits` already cover the case of `addressing_bits`
being `0`? Why not have `DNBGetAddressingBits` return the addressing bits and
do the check here?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D136620/new/
https://reviews.llvm.org/D136620
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits