vsk added inline comments.

================
Comment at: lldb/source/Plugins/Trace/intel-pt/DecodedThread.h:26
+public:
+  IntelPTError() = default;
+
----------------
Do we need a default constructor for this pure-virtual class?


================
Comment at: lldb/source/Plugins/Trace/intel-pt/DecodedThread.h:116
+  pt_insn m_pt_insn;
+  std::shared_ptr<IntelPTError> m_error;
+};
----------------
Still doesn't feel like this is aligning with the design of llvm::Error - 
they're supposed to be unique and lightweight. Specifically:

- Why is the error instance shareable? Do multiple threads need to handle the 
same error?
- For that matter, why is IntelPTInstruction copyable?
- How much are we gaining by storing the libipt_error_code vs. storing a `bool 
m_is_gap` field?

Imo it seems a bit too complicated to have three different ways to construct an 
IntelPTInstruction with an error. Would be nice to just have one?


================
Comment at: lldb/source/Plugins/Trace/intel-pt/DecodedThread.h:36
+
+  IntelPTInstruction(const pt_insn &pt_insn, int libipt_error_code = 0)
+      : m_pt_insn(pt_insn), m_libipt_error_code(libipt_error_code),
----------------
vsk wrote:
> Does this IntelPTInstruction constructor ever get called with a non-zero 
> libipt error code?
Still wondering about this: why do we need to construct an IntelPTInstruction 
using a pt_insn as well as an error code?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D89283

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

Reply via email to