labath added a comment.

I didn't go into all the details of this patch, as I am guessing this will 
still go through a number of revisions, but I did make a couple notes of things 
that caught my eye while glancing over it.



================
Comment at: lldb/include/lldb/Breakpoint/BreakpointInjectedSite.h:50
+class BreakpointInjectedSite
+    : public std::enable_shared_from_this<BreakpointInjectedSite>,
+      public BreakpointSite {
----------------
BreakpointSite is already shared_ptr-enabled. Why this? I don't think that's 
how you're supposed to use this class.


================
Comment at: lldb/include/lldb/Breakpoint/BreakpointSite.h:54-56
+   static bool classof(const BreakpointSite *bp_site) {
+     return bp_site->getKind() == eKindBreakpointSite;
+   }
----------------
This is weird. So, in OO terminology, `BreakpointInjectedSite` "is-a" 
`BreakpointSite`, but if you ask `llvm::isa<BreakpointSite>(injected_site)`, it 
will return false?


================
Comment at: lldb/include/lldb/Expression/ExpressionVariable.h:210
+public:
+  typedef AdaptedIterable<collection, lldb::ExpressionVariableSP,
+                          vector_adapter>
----------------
What is the purpose of this `AdaptedIterable`, and why is it better than just 
returning  say `ArrayRef<lldb::ExpressionVariableSP` ?


================
Comment at: lldb/source/Breakpoint/BreakpointInjectedSite.cpp:226
+      m_trap_addr = addr;
+      LLDB_LOGV(log, "Injected trap address: {:llx}", addr);
+      return true;
----------------
This isn't a proper format string. You can find their general description here 
<http://llvm.org/docs/ProgrammersManual.html#formatting-strings-the-formatv-function>,
 and the specifics are generally next to the definition of the actual format 
provider (e.g. 
<https://github.com/llvm-mirror/llvm/blob/master/include/llvm/Support/FormatProviders.h#L102>).
 I find it very helpful to look at their unit tests too: 
<https://github.com/llvm-mirror/llvm/blob/master/unittests/Support/FormatVariadicTest.cpp>.


================
Comment at: lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h:96-98
+  uint64_t GetJumpOpcode() override { return X64_JMP_OPCODE; }
+
+  size_t GetJumpSize() override { return X64_JMP_SIZE; }
----------------
replace with `ArrayRef<uint8_t> GetJumpOpcode();` or something similar.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66249/new/

https://reviews.llvm.org/D66249



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

Reply via email to