[Lldb-commits] [PATCH] D130930: [trace] Add SBTraceCursor bindings

walter erquinigo via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Aug 2 12:30:29 PDT 2022


wallace added inline comments.


================
Comment at: lldb/bindings/interface/SBTraceCursor.i:56
+
+  explicit operator bool() const;
+};
----------------
+1


================
Comment at: lldb/include/lldb/API/SBTraceCursor.h:21
+public:
+  /// Default constructor for an invalid \a SBTraceCursor object.
+  SBTraceCursor();
----------------
+1


================
Comment at: lldb/source/Plugins/Trace/intel-pt/DecodedThread.cpp:201
 lldb::TraceEvent DecodedThread::GetEventByIndex(int item_index) const {
+  // This currently returns an undefined value when the item isn't an event.
   return m_item_data[item_index].event;
----------------
jj10306 wrote:
> what's the best return value if this is called and the item isn't an event?
> ideally we could return something similar to LLDB_INVALID_ADDRESS, but since this is an enum we would need to add a new variant that represents the "invalid" case. Perhaps we could bring back the `eTraceEventNone` variant that was recently removed?
> wdyt?
I was thinking about that and I think a better contract is to expect users not to use a getter that is unrelated to the current trace type. If we don't add strict expectations, then consumers might create buggy code without realizing.


================
Comment at: lldb/source/Plugins/Trace/intel-pt/DecodedThread.cpp:234-236
+  return GetItemKindByIndex(item_index) == lldb::eTraceItemKindError
+             ? m_item_data[item_index].error
+             : nullptr;
----------------
like this. It might be better just to fail or return garbage and that will let the user know that they are doing something they shouldn't. 

Besides that, in c++ it's easy to look for nullptr when getting char *, but in python, this might be converted eventually to an actual empty str, and that might hide some possible bugs.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130930



More information about the lldb-commits mailing list