[Lldb-commits] [lldb] r354914 - Mention predicting exception catch at throw site

Jim Ingham via lldb-commits lldb-commits at lists.llvm.org
Tue Feb 26 11:18:09 PST 2019


Author: jingham
Date: Tue Feb 26 11:18:09 2019
New Revision: 354914

URL: http://llvm.org/viewvc/llvm-project?rev=354914&view=rev
Log:
Mention predicting exception catch at throw site

Modified:
    lldb/trunk/docs/status/projects.rst
    lldb/trunk/www/projects.html

Modified: lldb/trunk/docs/status/projects.rst
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/docs/status/projects.rst?rev=354914&r1=354913&r2=354914&view=diff
==============================================================================
--- lldb/trunk/docs/status/projects.rst (original)
+++ lldb/trunk/docs/status/projects.rst Tue Feb 26 11:18:09 2019
@@ -394,3 +394,24 @@ remote memory and its function calling s
 useful to unify these and make the IR interpreter -- both for LLVM and LLDB --
 better. An alternate strategy would be simply to JIT into the current process
 but have callbacks for non-stack memory access.
+
+Teach lldb to predict exception propagation at the throw site
+-------------------------------------------------------------
+
+There are a bunch of places in lldb where we need to know at the point where an
+exception is thrown, what frame will catch the exception.  
+
+For instance, if an expression throws an exception, we need to know whether the 
+exception will be caught in the course of the expression evaluation.  If so it 
+would be safe to let the expression continue.  But since we would destroy the 
+state of the thread if we let the exception escape the expression, we currently 
+stop the expression evaluation if we see a throw.  If we knew where it would be
+caught we could distinguish these two cases.
+
+Similarly, when you step over a call that throws, you want to stop at the throw 
+point if you know the exception will unwind past the frame you were stepping in,
+but it would annoying to have the step abort every time an exception was thrown.
+If we could predict the catching frame, we could do this right.
+
+And of course, this would be a useful piece of information to display when stopped 
+at a throw point.

Modified: lldb/trunk/www/projects.html
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/www/projects.html?rev=354914&r1=354913&r2=354914&view=diff
==============================================================================
--- lldb/trunk/www/projects.html (original)
+++ lldb/trunk/www/projects.html Tue Feb 26 11:18:09 2019
@@ -467,6 +467,32 @@
                                                 access.
                                               </p>
                                             </li>
+                                            <li>
+                                              Teach lldb to predict exception propagation at the throw site
+
+                                              <p>
+                                                There are a bunch of places in lldb where we need to know at the point where an
+                                                exception is thrown, what frame will catch the exception.
+                                              </p>
+                                              <p>
+                                              For instance, if an expression throws an exception, we need to know whether the
+                                              exception will be caught in the course of the expression evaluation.  If so it
+                                              would be safe to let the expression continue.  But since we would destroy the
+                                              state of the thread if we let the exception escape the expression, we currently
+                                              stop the expression evaluation if we see a throw.  If we knew where it would be
+                                              caught we could distinguish these two cases.
+                                              </p>
+                                              <p>
+                                              Similarly, when you step over a call that throws, you want to stop at the throw 
+                                              point if you know the exception will unwind past the frame you were stepping in,
+                                              but it would annoying to have the step abort every time an exception was thrown.
+                                              If we could predict the catching frame, we could do this right.
+                                              </p>
+                                              <p>
+                                                And of course, this would be a useful piece of information to display when stopped
+                                                at a throw point.
+                                              </p>
+                                            </li>
                                           </ol>
                 </div>
           	<div class="postfooter"></div>




More information about the lldb-commits mailing list