Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@@ -0,0 +1,6 @@
LEVEL = ../../make
C_SOURCES := main.c
CFLAGS_EXTRAS = -mthumb
include $(LEVEL)/Makefile.rules

View File

@@ -0,0 +1,45 @@
"""
Test that breakpoints in an IT instruction don't fire if their condition is
false.
"""
from __future__ import print_function
import lldb
import os
import time
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestBreakpointIt(TestBase):
mydir = TestBase.compute_mydir(__file__)
NO_DEBUG_INFO_TESTCASE = True
@skipIf(archs=no_match(["arm"]))
def test_false(self):
self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("target create %s" % exe)
lldbutil.run_break_set_by_symbol(self, "bkpt_false",
extra_options="--skip-prologue 0")
self.runCmd("run")
self.assertEqual(self.process().GetState(), lldb.eStateExited,
"Breakpoint does not get hit")
@skipIf(archs=no_match(["arm"]))
def test_true(self):
self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("target create %s" % exe)
bpid = lldbutil.run_break_set_by_symbol(self, "bkpt_true",
extra_options="--skip-prologue 0")
self.runCmd("run")
self.assertIsNotNone(lldbutil.get_one_thread_stopped_at_breakpoint_id(
self.process(), bpid))

View File

@@ -0,0 +1,14 @@
int main() {
int value;
asm (
"cmp %1, %2\n\t"
"ite ne\n\t"
".thumb_func\n\t"
"bkpt_true:\n\t"
"movne %0, %1\n\t"
".thumb_func\n\t"
"bkpt_false:\n\t"
"moveq %0, %2\n\t"
: "=r" (value) : "r"(42), "r"(47));
return value;
}