summaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/python_api/frame
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-08-20 18:01:57 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-08-20 18:01:57 +0000
commit88c643b6fec27eec436c8d138fee6346e92337d6 (patch)
tree82cd13b2f3cde1c9e5f79689ba4e6ba67694843f /packages/Python/lldbsuite/test/python_api/frame
parent94994d372d014ce4c8758b9605d63fae651bd8aa (diff)
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/python_api/frame')
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/Makefile5
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/TestFrames.py224
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/get-variables/Makefile5
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/get-variables/TestGetVariables.py296
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/get-variables/main.c29
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/inlines/Makefile9
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/inlines/TestInlinedFrame.py97
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/inlines/inlines.c53
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/inlines/inlines.h4
-rw-r--r--packages/Python/lldbsuite/test/python_api/frame/main.c58
10 files changed, 0 insertions, 780 deletions
diff --git a/packages/Python/lldbsuite/test/python_api/frame/Makefile b/packages/Python/lldbsuite/test/python_api/frame/Makefile
deleted file mode 100644
index 0d70f2595019..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL = ../../make
-
-C_SOURCES := main.c
-
-include $(LEVEL)/Makefile.rules
diff --git a/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py b/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py
deleted file mode 100644
index fc2f03f9e617..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py
+++ /dev/null
@@ -1,224 +0,0 @@
-"""
-Use lldb Python SBFrame API to get the argument values of the call stacks.
-And other SBFrame API tests.
-"""
-
-from __future__ import print_function
-
-
-import os
-import time
-import re
-import lldb
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-
-class FrameAPITestCase(TestBase):
-
- mydir = TestBase.compute_mydir(__file__)
-
- @add_test_categories(['pyapi'])
- def test_get_arg_vals_for_call_stack(self):
- """Exercise SBFrame.GetVariables() API to get argument vals."""
- self.build()
- exe = self.getBuildArtifact("a.out")
-
- # Create a target by the debugger.
- target = self.dbg.CreateTarget(exe)
- self.assertTrue(target, VALID_TARGET)
-
- # Now create a breakpoint on main.c by name 'c'.
- breakpoint = target.BreakpointCreateByName('c', 'a.out')
- #print("breakpoint:", breakpoint)
- self.assertTrue(breakpoint and
- breakpoint.GetNumLocations() == 1,
- VALID_BREAKPOINT)
-
- # Now launch the process, and do not stop at the entry point.
- process = target.LaunchSimple(
- None, None, self.get_process_working_directory())
-
- process = target.GetProcess()
- self.assertTrue(process.GetState() == lldb.eStateStopped,
- PROCESS_STOPPED)
-
- # Keeps track of the number of times 'a' is called where it is within a
- # depth of 3 of the 'c' leaf function.
- callsOfA = 0
-
- from six import StringIO as SixStringIO
- session = SixStringIO()
- while process.GetState() == lldb.eStateStopped:
- thread = lldbutil.get_stopped_thread(
- process, lldb.eStopReasonBreakpoint)
- self.assertIsNotNone(thread)
- # Inspect at most 3 frames.
- numFrames = min(3, thread.GetNumFrames())
- for i in range(numFrames):
- frame = thread.GetFrameAtIndex(i)
- if self.TraceOn():
- print("frame:", frame)
-
- name = frame.GetFunction().GetName()
- if name == 'a':
- callsOfA = callsOfA + 1
-
- # We'll inspect only the arguments for the current frame:
- #
- # arguments => True
- # locals => False
- # statics => False
- # in_scope_only => True
- valList = frame.GetVariables(True, False, False, True)
- argList = []
- for val in valList:
- argList.append("(%s)%s=%s" % (val.GetTypeName(),
- val.GetName(),
- val.GetValue()))
- print("%s(%s)" % (name, ", ".join(argList)), file=session)
-
- # Also check the generic pc & stack pointer. We can't test their absolute values,
- # but they should be valid. Uses get_GPRs() from the lldbutil
- # module.
- gpr_reg_set = lldbutil.get_GPRs(frame)
- pc_value = gpr_reg_set.GetChildMemberWithName("pc")
- self.assertTrue(pc_value, "We should have a valid PC.")
- pc_value_int = int(pc_value.GetValue(), 0)
- # Make sure on arm targets we dont mismatch PC value on the basis of thumb bit.
- # Frame PC will not have thumb bit set in case of a thumb
- # instruction as PC.
- if self.getArchitecture() in ['arm', 'armv7', 'armv7k']:
- pc_value_int &= ~1
- self.assertTrue(
- pc_value_int == frame.GetPC(),
- "PC gotten as a value should equal frame's GetPC")
- sp_value = gpr_reg_set.GetChildMemberWithName("sp")
- self.assertTrue(
- sp_value, "We should have a valid Stack Pointer.")
- self.assertTrue(int(sp_value.GetValue(), 0) == frame.GetSP(
- ), "SP gotten as a value should equal frame's GetSP")
-
- print("---", file=session)
- process.Continue()
-
- # At this point, the inferior process should have exited.
- self.assertTrue(
- process.GetState() == lldb.eStateExited,
- PROCESS_EXITED)
-
- # Expect to find 'a' on the call stacks two times.
- self.assertTrue(callsOfA == 2,
- "Expect to find 'a' on the call stacks two times")
- # By design, the 'a' call frame has the following arg vals:
- # o a((int)val=1, (char)ch='A')
- # o a((int)val=3, (char)ch='A')
- if self.TraceOn():
- print("Full stack traces when stopped on the breakpoint 'c':")
- print(session.getvalue())
- self.expect(session.getvalue(), "Argugment values displayed correctly",
- exe=False,
- substrs=["a((int)val=1, (char)ch='A')",
- "a((int)val=3, (char)ch='A')"])
-
- @add_test_categories(['pyapi'])
- def test_frame_api_boundary_condition(self):
- """Exercise SBFrame APIs with boundary condition inputs."""
- self.build()
- exe = self.getBuildArtifact("a.out")
-
- # Create a target by the debugger.
- target = self.dbg.CreateTarget(exe)
- self.assertTrue(target, VALID_TARGET)
-
- # Now create a breakpoint on main.c by name 'c'.
- breakpoint = target.BreakpointCreateByName('c', 'a.out')
- #print("breakpoint:", breakpoint)
- self.assertTrue(breakpoint and
- breakpoint.GetNumLocations() == 1,
- VALID_BREAKPOINT)
-
- # Now launch the process, and do not stop at the entry point.
- process = target.LaunchSimple(
- None, None, self.get_process_working_directory())
-
- process = target.GetProcess()
- self.assertTrue(process.GetState() == lldb.eStateStopped,
- PROCESS_STOPPED)
-
- thread = lldbutil.get_stopped_thread(
- process, lldb.eStopReasonBreakpoint)
- self.assertIsNotNone(thread)
- frame = thread.GetFrameAtIndex(0)
- if self.TraceOn():
- print("frame:", frame)
-
- # Boundary condition testings.
- val1 = frame.FindVariable(None, True)
- val2 = frame.FindVariable(None, False)
- val3 = frame.FindValue(None, lldb.eValueTypeVariableGlobal)
- if self.TraceOn():
- print("val1:", val1)
- print("val2:", val2)
-
- frame.EvaluateExpression(None)
-
- @add_test_categories(['pyapi'])
- def test_frame_api_IsEqual(self):
- """Exercise SBFrame API IsEqual."""
- self.build()
- exe = self.getBuildArtifact("a.out")
-
- # Create a target by the debugger.
- target = self.dbg.CreateTarget(exe)
- self.assertTrue(target, VALID_TARGET)
-
- # Now create a breakpoint on main.c by name 'c'.
- breakpoint = target.BreakpointCreateByName('c', 'a.out')
- #print("breakpoint:", breakpoint)
- self.assertTrue(breakpoint and
- breakpoint.GetNumLocations() == 1,
- VALID_BREAKPOINT)
-
- # Now launch the process, and do not stop at the entry point.
- process = target.LaunchSimple(
- None, None, self.get_process_working_directory())
-
- process = target.GetProcess()
- self.assertTrue(process.GetState() == lldb.eStateStopped,
- PROCESS_STOPPED)
-
- thread = lldbutil.get_stopped_thread(
- process, lldb.eStopReasonBreakpoint)
- self.assertIsNotNone(thread)
-
- frameEntered = thread.GetFrameAtIndex(0)
- if self.TraceOn():
- print(frameEntered)
- lldbutil.print_stacktrace(thread)
- self.assertTrue(frameEntered)
-
- # Doing two step overs while still inside c().
- thread.StepOver()
- thread.StepOver()
- self.assertTrue(thread)
- frameNow = thread.GetFrameAtIndex(0)
- if self.TraceOn():
- print(frameNow)
- lldbutil.print_stacktrace(thread)
- self.assertTrue(frameNow)
-
- # The latest two frames are considered equal.
- self.assertTrue(frameEntered.IsEqual(frameNow))
-
- # Now let's step out of frame c().
- thread.StepOutOfFrame(frameNow)
- frameOutOfC = thread.GetFrameAtIndex(0)
- if self.TraceOn():
- print(frameOutOfC)
- lldbutil.print_stacktrace(thread)
- self.assertTrue(frameOutOfC)
-
- # The latest two frames should not be equal.
- self.assertFalse(frameOutOfC.IsEqual(frameNow))
diff --git a/packages/Python/lldbsuite/test/python_api/frame/get-variables/Makefile b/packages/Python/lldbsuite/test/python_api/frame/get-variables/Makefile
deleted file mode 100644
index b09a579159d4..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/get-variables/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL = ../../../make
-
-C_SOURCES := main.c
-
-include $(LEVEL)/Makefile.rules
diff --git a/packages/Python/lldbsuite/test/python_api/frame/get-variables/TestGetVariables.py b/packages/Python/lldbsuite/test/python_api/frame/get-variables/TestGetVariables.py
deleted file mode 100644
index 1bd54c39fa0b..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/get-variables/TestGetVariables.py
+++ /dev/null
@@ -1,296 +0,0 @@
-"""
-Test that SBFrame::GetVariables() calls work correctly.
-"""
-
-from __future__ import print_function
-
-
-import os
-import time
-import lldb
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbplatform
-from lldbsuite.test import lldbutil
-
-
-def get_names_from_value_list(value_list):
- names = list()
- for value in value_list:
- names.append(value.GetName())
- return names
-
-
-class TestGetVariables(TestBase):
-
- mydir = TestBase.compute_mydir(__file__)
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- self.source = 'main.c'
-
- def verify_variable_names(self, description, value_list, names):
- copy_names = list(names)
- actual_names = get_names_from_value_list(value_list)
- for name in actual_names:
- if name in copy_names:
- copy_names.remove(name)
- else:
- self.assertTrue(
- False, "didn't find '%s' in %s" %
- (name, copy_names))
- self.assertEqual(
- len(copy_names), 0, "%s: we didn't find variables: %s in value list (%s)" %
- (description, copy_names, actual_names))
-
- def test(self):
- self.build()
-
- # Set debugger into synchronous mode
- self.dbg.SetAsync(False)
-
- # Create a target by the debugger.
- exe = self.getBuildArtifact("a.out")
- target = self.dbg.CreateTarget(exe)
- self.assertTrue(target, VALID_TARGET)
-
- line1 = line_number(self.source, '// breakpoint 1')
- line2 = line_number(self.source, '// breakpoint 2')
- line3 = line_number(self.source, '// breakpoint 3')
-
- breakpoint1 = target.BreakpointCreateByLocation(self.source, line1)
- breakpoint2 = target.BreakpointCreateByLocation(self.source, line2)
- breakpoint3 = target.BreakpointCreateByLocation(self.source, line3)
-
- self.assertTrue(breakpoint1.GetNumLocations() >= 1, PROCESS_IS_VALID)
- self.assertTrue(breakpoint2.GetNumLocations() >= 1, PROCESS_IS_VALID)
- self.assertTrue(breakpoint3.GetNumLocations() >= 1, PROCESS_IS_VALID)
-
- # Register our shared libraries for remote targets so they get
- # automatically uploaded
- arguments = None
- environment = None
-
- # Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple(
- arguments, environment, self.get_process_working_directory())
- self.assertTrue(process, PROCESS_IS_VALID)
-
- threads = lldbutil.get_threads_stopped_at_breakpoint(
- process, breakpoint1)
- self.assertEqual(
- len(threads),
- 1,
- "There should be a thread stopped at breakpoint 1")
-
- thread = threads[0]
- self.assertTrue(thread.IsValid(), "Thread must be valid")
- frame = thread.GetFrameAtIndex(0)
- self.assertTrue(frame.IsValid(), "Frame must be valid")
-
- arg_names = ['argc', 'argv']
- local_names = ['i', 'j', 'k']
- static_names = ['static_var', 'g_global_var', 'g_static_var']
- breakpoint1_locals = ['i']
- breakpoint1_statics = ['static_var']
- num_args = len(arg_names)
- num_locals = len(local_names)
- num_statics = len(static_names)
- args_yes = True
- args_no = False
- locals_yes = True
- locals_no = False
- statics_yes = True
- statics_no = False
- in_scopy_only = True
- ignore_scope = False
-
- # Verify if we ask for only arguments that we got what we expect
- vars = frame.GetVariables(
- args_yes, locals_no, statics_no, ignore_scope)
- self.assertEqual(
- vars.GetSize(),
- num_args,
- "There should be %i arguments, but we are reporting %i" %
- (num_args,
- vars.GetSize()))
- self.verify_variable_names("check names of arguments", vars, arg_names)
- self.assertEqual(
- len(arg_names),
- num_args,
- "make sure verify_variable_names() didn't mutate list")
-
- # Verify if we ask for only locals that we got what we expect
- vars = frame.GetVariables(
- args_no, locals_yes, statics_no, ignore_scope)
- self.assertEqual(
- vars.GetSize(),
- num_locals,
- "There should be %i local variables, but we are reporting %i" %
- (num_locals,
- vars.GetSize()))
- self.verify_variable_names("check names of locals", vars, local_names)
-
- # Verify if we ask for only statics that we got what we expect
- vars = frame.GetVariables(
- args_no, locals_no, statics_yes, ignore_scope)
- print('statics: ', str(vars))
- self.assertEqual(
- vars.GetSize(),
- num_statics,
- "There should be %i static variables, but we are reporting %i" %
- (num_statics,
- vars.GetSize()))
- self.verify_variable_names(
- "check names of statics", vars, static_names)
-
- # Verify if we ask for arguments and locals that we got what we expect
- vars = frame.GetVariables(
- args_yes, locals_yes, statics_no, ignore_scope)
- desc = 'arguments + locals'
- names = arg_names + local_names
- count = len(names)
- self.assertEqual(
- vars.GetSize(),
- count,
- "There should be %i %s (%s) but we are reporting %i (%s)" %
- (count,
- desc,
- names,
- vars.GetSize(),
- get_names_from_value_list(vars)))
- self.verify_variable_names("check names of %s" % (desc), vars, names)
-
- # Verify if we ask for arguments and statics that we got what we expect
- vars = frame.GetVariables(
- args_yes, locals_no, statics_yes, ignore_scope)
- desc = 'arguments + statics'
- names = arg_names + static_names
- count = len(names)
- self.assertEqual(
- vars.GetSize(),
- count,
- "There should be %i %s (%s) but we are reporting %i (%s)" %
- (count,
- desc,
- names,
- vars.GetSize(),
- get_names_from_value_list(vars)))
- self.verify_variable_names("check names of %s" % (desc), vars, names)
-
- # Verify if we ask for locals and statics that we got what we expect
- vars = frame.GetVariables(
- args_no, locals_yes, statics_yes, ignore_scope)
- desc = 'locals + statics'
- names = local_names + static_names
- count = len(names)
- self.assertEqual(
- vars.GetSize(),
- count,
- "There should be %i %s (%s) but we are reporting %i (%s)" %
- (count,
- desc,
- names,
- vars.GetSize(),
- get_names_from_value_list(vars)))
- self.verify_variable_names("check names of %s" % (desc), vars, names)
-
- # Verify if we ask for arguments, locals and statics that we got what
- # we expect
- vars = frame.GetVariables(
- args_yes, locals_yes, statics_yes, ignore_scope)
- desc = 'arguments + locals + statics'
- names = arg_names + local_names + static_names
- count = len(names)
- self.assertEqual(
- vars.GetSize(),
- count,
- "There should be %i %s (%s) but we are reporting %i (%s)" %
- (count,
- desc,
- names,
- vars.GetSize(),
- get_names_from_value_list(vars)))
- self.verify_variable_names("check names of %s" % (desc), vars, names)
-
- # Verify if we ask for in scope locals that we got what we expect
- vars = frame.GetVariables(
- args_no, locals_yes, statics_no, in_scopy_only)
- desc = 'in scope locals at breakpoint 1'
- names = ['i']
- count = len(names)
- self.assertEqual(
- vars.GetSize(),
- count,
- "There should be %i %s (%s) but we are reporting %i (%s)" %
- (count,
- desc,
- names,
- vars.GetSize(),
- get_names_from_value_list(vars)))
- self.verify_variable_names("check names of %s" % (desc), vars, names)
-
- # Continue to breakpoint 2
- process.Continue()
-
- threads = lldbutil.get_threads_stopped_at_breakpoint(
- process, breakpoint2)
- self.assertEqual(
- len(threads),
- 1,
- "There should be a thread stopped at breakpoint 2")
-
- thread = threads[0]
- self.assertTrue(thread.IsValid(), "Thread must be valid")
- frame = thread.GetFrameAtIndex(0)
- self.assertTrue(frame.IsValid(), "Frame must be valid")
-
- # Verify if we ask for in scope locals that we got what we expect
- vars = frame.GetVariables(
- args_no, locals_yes, statics_no, in_scopy_only)
- desc = 'in scope locals at breakpoint 2'
- names = ['i', 'j']
- count = len(names)
- self.assertEqual(
- vars.GetSize(),
- count,
- "There should be %i %s (%s) but we are reporting %i (%s)" %
- (count,
- desc,
- names,
- vars.GetSize(),
- get_names_from_value_list(vars)))
- self.verify_variable_names("check names of %s" % (desc), vars, names)
-
- # Continue to breakpoint 3
- process.Continue()
-
- threads = lldbutil.get_threads_stopped_at_breakpoint(
- process, breakpoint3)
- self.assertEqual(
- len(threads),
- 1,
- "There should be a thread stopped at breakpoint 3")
-
- thread = threads[0]
- self.assertTrue(thread.IsValid(), "Thread must be valid")
- frame = thread.GetFrameAtIndex(0)
- self.assertTrue(frame.IsValid(), "Frame must be valid")
-
- # Verify if we ask for in scope locals that we got what we expect
- vars = frame.GetVariables(
- args_no, locals_yes, statics_no, in_scopy_only)
- desc = 'in scope locals at breakpoint 3'
- names = ['i', 'j', 'k']
- count = len(names)
- self.assertEqual(
- vars.GetSize(),
- count,
- "There should be %i %s (%s) but we are reporting %i (%s)" %
- (count,
- desc,
- names,
- vars.GetSize(),
- get_names_from_value_list(vars)))
- self.verify_variable_names("check names of %s" % (desc), vars, names)
diff --git a/packages/Python/lldbsuite/test/python_api/frame/get-variables/main.c b/packages/Python/lldbsuite/test/python_api/frame/get-variables/main.c
deleted file mode 100644
index 7fecfc0293c3..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/get-variables/main.c
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- main.c --------------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-#include <stdio.h>
-
-int g_global_var = 123;
-static int g_static_var = 123;
-
-int main (int argc, char const *argv[])
-{
- static int static_var = 123;
- g_static_var = 123; // clang bug. Need to touch this variable, otherwise it disappears.
- int i = 0; // breakpoint 1
- for (i=0; i<1; ++i)
- {
- int j = i*2;
- printf("i = %i, j = %i\n", i, j); // breakpoint 2
- {
- int k = i*j*3;
- printf("i = %i, j = %i\n", i, j); // breakpoint 3
- }
- }
- return 0;
-}
diff --git a/packages/Python/lldbsuite/test/python_api/frame/inlines/Makefile b/packages/Python/lldbsuite/test/python_api/frame/inlines/Makefile
deleted file mode 100644
index 641ee5d96ca6..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/inlines/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-LEVEL = ../../../make
-
-C_SOURCES := inlines.c
-
-ifneq (,$(findstring icc,$(CC)))
- CFLAGS += -debug inline-debug-info
-endif
-
-include $(LEVEL)/Makefile.rules
diff --git a/packages/Python/lldbsuite/test/python_api/frame/inlines/TestInlinedFrame.py b/packages/Python/lldbsuite/test/python_api/frame/inlines/TestInlinedFrame.py
deleted file mode 100644
index 8b8f81ff4c4b..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/inlines/TestInlinedFrame.py
+++ /dev/null
@@ -1,97 +0,0 @@
-"""
-Testlldb Python SBFrame APIs IsInlined() and GetFunctionName().
-"""
-
-from __future__ import print_function
-
-
-import os
-import time
-import re
-import lldb
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-
-class InlinedFrameAPITestCase(TestBase):
-
- mydir = TestBase.compute_mydir(__file__)
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Find the line number to of function 'c'.
- self.source = 'inlines.c'
- self.first_stop = line_number(
- self.source, '// This should correspond to the first break stop.')
- self.second_stop = line_number(
- self.source, '// This should correspond to the second break stop.')
-
- @add_test_categories(['pyapi'])
- def test_stop_at_outer_inline(self):
- """Exercise SBFrame.IsInlined() and SBFrame.GetFunctionName()."""
- self.build()
- exe = self.getBuildArtifact("a.out")
-
- # Create a target by the debugger.
- target = self.dbg.CreateTarget(exe)
- self.assertTrue(target, VALID_TARGET)
-
- # Now create a breakpoint on main.c by the name of 'inner_inline'.
- breakpoint = target.BreakpointCreateByName('inner_inline', 'a.out')
- #print("breakpoint:", breakpoint)
- self.assertTrue(breakpoint and
- breakpoint.GetNumLocations() > 1,
- VALID_BREAKPOINT)
-
- # Now launch the process, and do not stop at the entry point.
- process = target.LaunchSimple(
- None, None, self.get_process_working_directory())
-
- process = target.GetProcess()
- self.assertTrue(process.GetState() == lldb.eStateStopped,
- PROCESS_STOPPED)
-
- import lldbsuite.test.lldbutil as lldbutil
- stack_traces1 = lldbutil.print_stacktraces(process, string_buffer=True)
- if self.TraceOn():
- print(
- "Full stack traces when first stopped on the breakpoint 'inner_inline':")
- print(stack_traces1)
-
- # The first breakpoint should correspond to an inlined call frame.
- # If it's an inlined call frame, expect to find, in the stack trace,
- # that there is a frame which corresponds to the following call site:
- #
- # outer_inline (argc);
- #
- thread = lldbutil.get_stopped_thread(
- process, lldb.eStopReasonBreakpoint)
- self.assertIsNotNone(thread)
-
- frame0 = thread.GetFrameAtIndex(0)
- if frame0.IsInlined():
- filename = frame0.GetLineEntry().GetFileSpec().GetFilename()
- self.assertTrue(filename == self.source)
- self.expect(
- stack_traces1, "First stop at %s:%d" %
- (self.source, self.first_stop), exe=False, substrs=[
- '%s:%d' %
- (self.source, self.first_stop)])
-
- # Expect to break again for the second time.
- process.Continue()
- self.assertTrue(process.GetState() == lldb.eStateStopped,
- PROCESS_STOPPED)
- stack_traces2 = lldbutil.print_stacktraces(
- process, string_buffer=True)
- if self.TraceOn():
- print(
- "Full stack traces when stopped on the breakpoint 'inner_inline' for the second time:")
- print(stack_traces2)
- self.expect(
- stack_traces2, "Second stop at %s:%d" %
- (self.source, self.second_stop), exe=False, substrs=[
- '%s:%d' %
- (self.source, self.second_stop)])
diff --git a/packages/Python/lldbsuite/test/python_api/frame/inlines/inlines.c b/packages/Python/lldbsuite/test/python_api/frame/inlines/inlines.c
deleted file mode 100644
index a2a8212278d0..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/inlines/inlines.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <stdio.h>
-#include "inlines.h"
-
-#define INLINE_ME __inline__ __attribute__((always_inline))
-
-int
-not_inlined_2 (int input)
-{
- printf ("Called in not_inlined_2 with : %d.\n", input);
- return input;
-}
-
-int
-not_inlined_1 (int input)
-{
- printf ("Called in not_inlined_1 with %d.\n", input);
- return not_inlined_2(input);
-}
-
-INLINE_ME int
-inner_inline (int inner_input, int mod_value)
-{
- int inner_result;
- inner_result = inner_input % mod_value;
- printf ("Returning: %d.\n", inner_result);
- return not_inlined_1 (inner_result);
-}
-
-INLINE_ME int
-outer_inline (int outer_input)
-{
- int outer_result;
-
- outer_result = inner_inline (outer_input, outer_input % 3);
- return outer_result;
-}
-
-int
-main (int argc, char **argv)
-{
- printf ("Starting...\n");
-
- int (*func_ptr) (int);
- func_ptr = outer_inline;
-
- outer_inline (argc); // This should correspond to the first break stop.
-
- func_ptr (argc); // This should correspond to the second break stop.
-
- return 0;
-}
-
-
diff --git a/packages/Python/lldbsuite/test/python_api/frame/inlines/inlines.h b/packages/Python/lldbsuite/test/python_api/frame/inlines/inlines.h
deleted file mode 100644
index 265d7b4966ed..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/inlines/inlines.h
+++ /dev/null
@@ -1,4 +0,0 @@
-int inner_inline (int inner_input, int mod_value);
-int outer_inline (int outer_input);
-int not_inlined_2 (int input);
-int not_inlined_1 (int input);
diff --git a/packages/Python/lldbsuite/test/python_api/frame/main.c b/packages/Python/lldbsuite/test/python_api/frame/main.c
deleted file mode 100644
index 35209db1812e..000000000000
--- a/packages/Python/lldbsuite/test/python_api/frame/main.c
+++ /dev/null
@@ -1,58 +0,0 @@
-//===-- main.c --------------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-#include <stdio.h>
-
-// This simple program is to test the lldb Python API related to frames.
-
-int a(int, char);
-int b(int, char);
-int c(int, char);
-
-int a(int val, char ch)
-{
- int my_val = val;
- char my_ch = ch;
- printf("a(val=%d, ch='%c')\n", val, ch);
- if (val <= 1)
- return b(val+1, ch+1);
- else if (val >= 3)
- return c(val+1, ch+1);
-
- return val;
-}
-
-int b(int val, char ch)
-{
- int my_val = val;
- char my_ch = ch;
- printf("b(val=%d, ch='%c')\n", val, ch);
- return c(val+1, ch+1);
-}
-
-int c(int val, char ch)
-{
- int my_val = val;
- char my_ch = ch;
- printf("c(val=%d, ch='%c')\n", val, ch);
- return val + 3 + ch;
-}
-
-int main (int argc, char const *argv[])
-{
- int A1 = a(1, 'A'); // a(1, 'A') -> b(2, 'B') -> c(3, 'C')
- printf("a(1, 'A') returns %d\n", A1);
-
- int B2 = b(2, 'B'); // b(2, 'B') -> c(3, 'C')
- printf("b(2, 'B') returns %d\n", B2);
-
- int A3 = a(3, 'A'); // a(3, 'A') -> c(4, 'B')
- printf("a(3, 'A') returns %d\n", A3);
-
- return 0;
-}