summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection')
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/Makefile4
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/TestBreakpointThumbCodesection.py33
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/main.c8
3 files changed, 45 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/Makefile b/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/Makefile
new file mode 100644
index 00000000000..3f8e5597f7d
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/Makefile
@@ -0,0 +1,4 @@
+C_SOURCES := main.c
+CFLAGS_EXTRAS := -mthumb
+
+include Makefile.rules \ No newline at end of file
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/TestBreakpointThumbCodesection.py b/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/TestBreakpointThumbCodesection.py
new file mode 100644
index 00000000000..0726369b676
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/TestBreakpointThumbCodesection.py
@@ -0,0 +1,33 @@
+"""
+Test that breakpoints correctly work in an thumb function in an arbitrary
+named codesection.
+"""
+
+
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class TestBreakpointThumbCodesection(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ @skipIf(archs=no_match(["arm"]))
+ @skipIfDarwinEmbedded # codegen on darwin always defaults to thumb for armv7/armv7k targets
+ def test_breakpoint(self):
+ self.build()
+ exe = self.getBuildArtifact("a.out")
+ line = line_number('main.c', '// Set break point at this line.')
+
+ self.runCmd("target create %s" % exe)
+ bpid = lldbutil.run_break_set_by_file_and_line(self, "main.c", line)
+
+ self.runCmd("run")
+
+ self.assertIsNotNone(lldbutil.get_one_thread_stopped_at_breakpoint_id(
+ self.process(), bpid), "Process is not stopped at breakpoint")
+
+ self.process().Continue()
+ self.assertEqual(self.process().GetState(), lldb.eStateExited, PROCESS_EXITED)
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/main.c b/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/main.c
new file mode 100644
index 00000000000..38ea7be6bfc
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/main.c
@@ -0,0 +1,8 @@
+__attribute__((section("__codesection")))
+int f(int a) {
+ return a + 1; // Set break point at this line.
+}
+
+int main() {
+ return f(10);
+}