valentinagiusti marked 3 inline comments as done.
valentinagiusti added inline comments.


================
Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:199-218
+  if (arch == llvm::Triple::ArchType::x86_64) {
+    lbound = toU64(bt_entry_v[7], bt_entry_v[6], bt_entry_v[5], bt_entry_v[4],
+                   bt_entry_v[3], bt_entry_v[2], bt_entry_v[1], bt_entry_v[0]);
+    ubound =
+        ~toU64(bt_entry_v[15], bt_entry_v[14], bt_entry_v[13], bt_entry_v[12],
+               bt_entry_v[11], bt_entry_v[10], bt_entry_v[9], bt_entry_v[8]);
+    value =
----------------
clayborg wrote:
> Use SBData and you don't need the "if (arch == ...)" since SBData knows the 
> address byte size:
> 
> ```
> SBError error;
> SBData data;
> uint32_t addr_size = target.GetAddressByteSize();
> data.SetData(error, bt_entry_v.data(), bt_entry_v.size(), 
> target.GetByteOrder(), addr_size);
> 
> lldb::addr_t lbound = data.GetAddress(error, 0 * addr_size);
> lldb::addr_t ubound  = data.GetAddress(error, 1 * addr_size);
> uint64_t value = data.GetAddress(error, 2 * addr_size);
> uint64_t meta = data.GetAddress(error, 3 * addr_size);
> ```
same as above.


================
Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:313-314
+
+  lldb::SBData bndcfgu_data = bndcfgu_val.GetData();
+  bndcfgu = bndcfgu_data.GetUnsignedInt64(error, 0);
+  if (!error.Success()) {
----------------
clayborg wrote:
> No need to use SBData here, the SBValue can provide what you need. You use 
> SBValue::GetValueAsUnsigned() and specify the invalid value to return as the 
> argument (zero for nullptr):
> ```
> bndcfgu = bndcfgu_val.GetValueAsUnsigned(0); 
> ```
This also doesn't work, it returns the error: "could not resolve value"., which 
is why I opted for using SBData when I first wrote this code.


================
Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:359
+
+      if (!GetInitInfo(debugger, target, arch, frame, bndcfgu, arg, ptr, 
result,
+                       error))
----------------
clayborg wrote:
> I would either extract the target here before passing to any other functions 
> like this one and only pass the target. There is no need to pass both the 
> debugger and the target since you can do "target.GetDebugger()" anytime you 
> need the debugger from the target. You can also remove the "frame" variable 
> from this since it is only used in GetInitInfo().
I just wanted to avoid repeating the code to initialize the target and have it 
only inside GetInitInfo.


https://reviews.llvm.org/D29078



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to