[Lldb-commits] [PATCH] D52851: Adding support to step into the callable wrapped by libc++ std::function
Davide Italiano via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Wed Oct 3 16:26:33 PDT 2018
davide added a comment.
Some basic comments. Haven't looked at the implementation very closely, I'll do that probably tomorrow. Thanks for working on this!
================
Comment at: include/lldb/Target/CPPLanguageRuntime.h:59-60
+ lldb::ThreadPlanSP GetStepThroughTrampolinePlan(Thread &thread,
+ bool stop_others);
+
----------------
Please add a doxygen comment to this function. (I understand the surrounding ones are not commented, but we should start somewhere)/
================
Comment at: packages/Python/lldbsuite/test/lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable.py:1-3
+"""
+Test lldb data formatter subsystem.
+"""
----------------
This comment seems a little outdated.
================
Comment at: packages/Python/lldbsuite/test/lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable.py:8-9
+
+import os
+import time
+import lldb
----------------
I'm not sure you need these.
================
Comment at: packages/Python/lldbsuite/test/lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable.py:27-28
+
+ @add_test_categories(["libc++"])
+ def test(self):
+ """Test that std::function as defined by libc++ is correctly printed by LLDB"""
----------------
Is this affected by the debug info variant used? (i.e. dSYM/gmodules/DWARF/dwo).
If not, this could be a `NO_DEBUG_INFO` test
================
Comment at: packages/Python/lldbsuite/test/lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable.py:56-73
+ self.assertEqual( self.thread.GetFrameAtIndex(0).GetLineEntry().GetLine(), 13 ) ;
+ self.process.Continue()
+
+ self.thread.StepInto()
+ self.assertEqual( self.thread.GetFrameAtIndex(0).GetLineEntry().GetLine(), 28 ) ;
+ self.process.Continue()
+
----------------
All these lines check hardcoded make me a little nervous, as they're really fragile. Can you make them parametric at least?
so that if somebody slides down the test case they're still valid (i.e. base + offset)
================
Comment at: packages/Python/lldbsuite/test/lang/cpp/std-function-step-into-callable/main.cpp:1-9
+//===-- main.cpp --------------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
----------------
You don't need a license for the test case, I think.
================
Comment at: source/Target/ThreadPlanStepThrough.cpp:99-105
+
+ CPPLanguageRuntime *cpp_runtime =
+ m_thread.GetProcess()->GetCPPLanguageRuntime();
+
+ if (cpp_runtime)
+ m_sub_plan_sp =
+ cpp_runtime->GetStepThroughTrampolinePlan(m_thread, m_stop_others);
----------------
Can you add a comment here?
https://reviews.llvm.org/D52851
More information about the lldb-commits
mailing list