[Lldb-commits] [PATCH] D91216: [lldb] [Process/FreeBSDRemote] Access GPR via reginfo offsets
    Pavel Labath via Phabricator via lldb-commits 
    lldb-commits at lists.llvm.org
       
    Thu Nov 12 01:16:19 PST 2020
    
    
  
labath added a comment.
I like this. Some comments in the tests -- trying to reduce the amount of preprocessor magic..
================
Comment at: lldb/unittests/Process/FreeBSD/CMakeLists.txt:1
+add_lldb_unittest(RegisterContextFreeBSDTests
+  RegisterContextFreeBSDTests.cpp
----------------
I'd put this in `unittests/Process/Utility`, to match the location of the code being tested.
================
Comment at: lldb/unittests/Process/FreeBSD/CMakeLists.txt:8-9
+
+target_include_directories(RegisterContextFreeBSDTests PRIVATE
+  ${LLDB_SOURCE_DIR}/source/Plugins/Process/Utility)
----------------
Drop this, and include the file as `"Plugins/Process/Utility/..."`
================
Comment at: lldb/unittests/Process/FreeBSD/RegisterContextFreeBSDTests.cpp:16
+
+#if defined(__x86_64__) || defined(__i386__)
+#include "lldb-x86-register-enums.h"
----------------
These don't really have to be ifdefed, do they?
================
Comment at: lldb/unittests/Process/FreeBSD/RegisterContextFreeBSDTests.cpp:26-31
+#define ASSERT_REG(regname, offset, size)                                      \
+  {                                                                            \
+    const RegisterInfo *reg_info = ®_ctx.GetRegisterInfo()[lldb_##regname]; \
+    EXPECT_EQ(reg_info->byte_offset, offset);                                  \
+    EXPECT_EQ(reg_info->byte_size, size);                                      \
+  }
----------------
```
pair<size_t(?), size_t> GetRegParams(const RegisterContext &ctx, unsigned reg) {
  const RegisterInfo &info = reg_ctx.GetRegisterInfo()[reg];
  return {info.byte_offset, info.byte_size};
}
```
================
Comment at: lldb/unittests/Process/FreeBSD/RegisterContextFreeBSDTests.cpp:35
+
+#define ASSERT_GPR_X86_64(regname)                                             \
+  ASSERT_REG(regname##_x86_64, offsetof(reg, r_##regname),                     \
----------------
```
#define ASSERT_GPR_X86_64(regname)
  ASSERT_THAT(GetRegParams(reg_ctx, regname##_x86_64, testing::Pair(offsetof(reg, r_##regname), sizeof(reg::r_##regname))
```
================
Comment at: lldb/unittests/Process/FreeBSD/RegisterContextFreeBSDTests.cpp:72-74
+#if defined(__i386__)
+#define reg32 reg
+#endif
----------------
Inside the test function:
```
#ifdef __i386__
using native_i386_regs = ::reg32;
#else
using native_i386_regs = ::reg;
#endif
```
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91216/new/
https://reviews.llvm.org/D91216
    
    
More information about the lldb-commits
mailing list