mib requested changes to this revision.
mib added a comment.
This revision now requires changes to proceed.

I don't understand why the succeeding return value for `GetFramesUpTo` is 
`false`. It looks counter-intuitive to me. What's the motivation behind that ?



================
Comment at: lldb/include/lldb/Target/StackFrameList.h:103-104
 
-  void GetFramesUpTo(uint32_t end_idx);
+  /// Gets frames up to end_idx (which can be greater than the actual number of
+  /// frames.)  Returns true if the function was interrupted, false otherwise.
+  bool GetFramesUpTo(uint32_t end_idx, bool allow_interrupt = true);
----------------
bulbazord wrote:
> Is the range inclusive of `end_idx`? as in, is it [0, end_idx) or [0, 
> end_idx]?
@bulbazord I believe this should be inclusive.

@jingham This comment sounds like we only return `true` if the function was 
interrupted, which is not the expected behavior, right ?


================
Comment at: lldb/source/Target/StackFrameList.cpp:448
   if (m_frames.size() > end_idx || GetAllFramesFetched())
-    return;
+    return false;
 
----------------
I find it confusing the fail here given that we've succeeded at fetching the 
frames


================
Comment at: lldb/source/Target/StackFrameList.cpp:633
+    return was_interrupted;
+  return false;
 }
----------------
Again, I believe this should return `true` since we succeeded at retrieving all 
the requested frames.


================
Comment at: lldb/source/Target/StackFrameList.cpp:683-684
   // there are that many.  If there weren't then you asked for too many frames.
-  GetFramesUpTo(idx);
+  bool interrupted = GetFramesUpTo(idx);
+  if (interrupted) {
+    Log *log = GetLog(LLDBLog::Thread);
----------------
bulbazord wrote:
> nit: Since `interrupted` isn't used anywhere else, you could do something 
> like:
> ```
> if (bool interrupted = GetFramesUpTo(idx)) {
>  // Code here
> }
> ```
> You could also just do `if (GetFramesUpTo(idx))` but I think the name of the 
> function isn't descriptive enough to do that and stay readable.
+1: reading `if (GetFramesUpTo(idx))`, I'd never think that the succeeding 
result would be `false`.


================
Comment at: 
lldb/test/API/functionalities/bt-interrupt/TestInterruptBacktrace.py:46
+        
+        self.dbg.CancelInterruptRequest()
+
----------------
Is this necessary if you already have it in the `cleanup` method ?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D150236

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

Reply via email to