summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint
Commit message (Collapse)AuthorAgeFilesLines
* Fix TestMoveNearest for remote targetsPavel Labath2017-03-151-1/+2
| | | | | | | Launching a process with shared libraries on remote targets requires a special dance, which I forgot to do in r297830. llvm-svn: 297834
* Fix TestMoveNearest breakage on darwinPavel Labath2017-03-151-0/+4
| | | | | | | | | It seems that on darwin we are not able to resolve breakpoints in the test shared library until the process has started. That seems unfortunate, but it is not the purpose of this test, so work around that by starting the process before doing the rest of our checks. llvm-svn: 297830
* BreakpointResolverFileLine: Restrict move-to-nearest-code from moving across ↵Pavel Labath2017-03-157-15/+85
| | | | | | | | | | | | | | | | | | | | | | | | | function boundaries Summary: This fixes the case where a user tries to set a breakpoint on a source line outside of any function (e.g. because that code is #ifdefed out, or the compiler did not emit code for the function, etc.) and we would silently move the breakpoint to the next function. Now we check whether the line range of the resolved symbol context function matches the original line number. We reject any breakpoint locations that appear to move the breakpoint into a new function. This filtering only happens if we have full debug info available (e.g. in case of -gline-tables-only compilation, we still set the breakpoint on the nearest source line). Reviewers: jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D30817 llvm-svn: 297817
* Switch SBBreakpoint to storing a weak_ptr of the internal breakpoint objectPavel Labath2017-02-271-1/+0
| | | | | | | | | | | | | | | | | Summary: There is nothing we can do with the breakpoint once the associated target becomes deleted. This will make sure we don't hold on to more resources than we need in this case. In particular, this fixes the case TestStepOverBreakpoint on windows, where a lingering SBBreakpoint object causes us to nor unmap the executable file from memory. Reviewers: clayborg, jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D30249 llvm-svn: 296328
* Hardware breakpoints for Linux on Arm/AArch64 targetsOmair Javaid2017-02-243-0/+171
| | | | | | | | Please look at below differential link for upstream discussion. Differential revision: https://reviews.llvm.org/D29669 llvm-svn: 296119
* Skip TestStepOverBreakpoint on windowsPavel Labath2017-02-151-0/+2
| | | | llvm-svn: 295211
* Bug 30863 - Step doesn't stop with conditional breakpoint on the next lineBoris Ulasevich2017-02-153-0/+140
| | | | | | | | | Differential Revisions: https://reviews.llvm.org/D26497 (committed r290168, temporary reverted r290197) https://reviews.llvm.org/D28945 (fix for Ubuntu tests fail) https://reviews.llvm.org/D29909 (fix for TestCallThatThrows test fail) llvm-svn: 295168
* Unroll r292930 due to TestCallThatThrows test fail is not fixed in ↵Boris Ulasevich2017-01-273-140/+0
| | | | | | reasonable time. llvm-svn: 293269
* Bug 30863 - Step doesn't stop with conditional breakpoint on the next lineBoris Ulasevich2017-01-243-0/+140
| | | | | | | | Differential Revisions: https://reviews.llvm.org/D26497 (committed r290168, temporary reverted r290197) https://reviews.llvm.org/D28945 (fix for Ubuntu tests fail) llvm-svn: 292930
* Rollback my commit r290168 to fix linux tests failure. I'll be back!Boris Ulasevich2016-12-203-140/+0
| | | | llvm-svn: 290197
* Bug 30863 - Step doesn't stop with coditional breakpoint on the next lineBoris Ulasevich2016-12-203-0/+140
| | | | | | | | | Fixed by additional completed plans detection, and applying them on breakpoint condition fail. Thread::GetStopInfo reworked. New test added. Review https://reviews.llvm.org/D26497 Many thanks to Jim llvm-svn: 290168
* Test num locations >= 1 not == 1.Jim Ingham2016-12-141-1/+1
| | | | llvm-svn: 289695
* These test cases don't test different debug info formats.Jim Ingham2016-10-062-0/+4
| | | | llvm-svn: 283468
* Fix the decorator of TestBreakpointCaseSensitivityTamas Berghammer2016-10-041-4/+2
| | | | llvm-svn: 283262
* Fix test when using remote debugging.Pavel Labath2016-10-041-1/+1
| | | | | | | | | | | | | | Summary: Use os.getcwd() instead of get_process_working_directory() as prefix for souce file. Reviewers: labath Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D25217 llvm-svn: 283171
* IsValid is the way to ask a breakpoint location whether it is valid.Jim Ingham2016-09-301-2/+3
| | | | llvm-svn: 282966
* Fix serialization of Python breakpoint commands.Jim Ingham2016-09-262-3/+3
| | | | | | | | | | | CommandData breakpoint commands didn't know whether they were Python or Command line commands, so they couldn't serialize & deserialize themselves properly. Fix that. I also changed the "breakpoint list" command to note in the output when the commands are Python commands. Fortunately only one test was relying on this explicit bit of text output. llvm-svn: 282432
* Add the ability to append breakpoints to the save file.Jim Ingham2016-09-221-3/+57
| | | | llvm-svn: 282212
* Add the ability to deserialize only breakpoints matching a given name.Jim Ingham2016-09-221-1/+34
| | | | | | Also tests for this and the ThreadSpec serialization. llvm-svn: 282207
* Probably should add the breakpoint names test directory as well...Jim Ingham2016-09-213-0/+200
| | | | llvm-svn: 282103
* Add some more tests for breakpoint serialization.Jim Ingham2016-09-201-45/+99
| | | | | | | | | | Serialize breakpoint names & the hardware_requested attributes. Also added a few missing affordances to SBBreakpoint whose absence writing the tests pointed out. <rdar://problem/12611863> llvm-svn: 282036
* First tests for serializing breakpoints.Jim Ingham2016-09-163-0/+206
| | | | | | Plus a few bug fixes I found along the way. llvm-svn: 281690
* *** This commit represents a complete reformatting of the LLDB source codeKate Stone2016-09-0624-514/+921
| | | | | | | | | | | | | | | | | | | | | | | *** to conform to clang-format’s LLVM style. This kind of mass change has *** two obvious implications: Firstly, merging this particular commit into a downstream fork may be a huge effort. Alternatively, it may be worth merging all changes up to this commit, performing the same reformatting operation locally, and then discarding the merge for this particular commit. The commands used to accomplish this reformatting were as follows (with current working directory as the root of the repository): find . \( -iname "*.c" -or -iname "*.cpp" -or -iname "*.h" -or -iname "*.mm" \) -exec clang-format -i {} + find . -iname "*.py" -exec autopep8 --in-place --aggressive --aggressive {} + ; The version of clang-format used was 3.9.0, and autopep8 was 1.2.4. Secondly, “blame” style tools will generally point to this commit instead of a meaningful prior commit. There are alternatives available that will attempt to look through this change and find the appropriate prior commit. YMMV. llvm-svn: 280751
* Remove a test that depends on knowing all compiler's register allocation ↵Jim Ingham2016-08-191-23/+0
| | | | | | | | | | | schemes. This test was using a condition that would compare a variable against the register that would hold it. It was failing with clang on arm64 because clang put the variable on the stack. This is not a supportable way to write tests. llvm-svn: 279345
* Undid LLVM macro usage in test suite test subject files.Todd Fiala2016-08-101-7/+7
| | | | llvm-svn: 278197
* Delete Host/windows/win32.hZachary Turner2016-08-091-7/+7
| | | | | | | | | | | | | | | | | | | It's always hard to remember when to include this file, and when you do include it it's hard to remember what preprocessor check it needs to be behind, and then you further have to remember whether it's windows.h or win32.h which you need to include. This patch changes the name to PosixApi.h, which is more appropriately named, and makes it independent of any preprocessor setting. There's still the issue of people not knowing when to include this, because there's not a well-defined set of things it exposes other than "whatever is missing on Windows", but at least this should make it less painful to fix when problems arise. This patch depends on LLVM revision r278170. llvm-svn: 278177
* Errors compiling breakpoint conditions will cause the breakpoint not to be hitJim Ingham2016-08-031-0/+44
| | | | | | | | | This was a shadowed variable error from the big Expression Parser plugin-ification. I also added a test case for this. <rdar://problem/27682376> llvm-svn: 277662
* LLDB help content has accumulated over time without a recent attempt toKate Stone2016-07-141-1/+1
| | | | | | | | | review it for consistency, accuracy, and clarity. These changes attempt to address all of the above while keeping the text relatively terse. <rdar://problem/24868841> llvm-svn: 275485
* Enable some tests on linuxPavel Labath2016-06-091-1/+0
| | | | | | | | | This enables a couple of tests which have been shown to run reliably on the linux x86 buildbot. If you see a failure after this commit, feel free to add the xfail back, but please make it as specific as possible (i.e., try to make it not cover i386/x86_64 with clang-3.5, clang-3.9 or gcc-4.9). llvm-svn: 272326
* Fix error propagation from the Z0 packet in gdb-remote breakpoint setting.Jim Ingham2016-05-191-0/+77
| | | | | | | | | | | | | The error was not getting propagated to the caller, so the higher layers thought the breakpoint was successfully set & resolved. I added a testcase, but it assumes 0x0 is not a valid place to set a breakpoint. On most systems that is true, but if it isn't true of your system, either find another good place and add it to the test, or x-fail the test. <rdar://problem/26345962> llvm-svn: 270014
* Corrected aarch64 register no in TestBreakpointConditions.pyOmair Javaid2016-05-111-1/+1
| | | | | | | Test uses x1 in breakpoint expression while objdump shows that x1 is never used in the code and may have random values. Using x0 make sure that we are using a registe that will have a positive value and breakpoint expression will evaluate true atleast once. llvm-svn: 269164
* Add a testcase for "BreakpointSetBySourceRegex" Jim Ingham2016-05-105-0/+139
| | | | | | | This tests both that we set the breakpoint on the right line, and that restricting by file and/or the function, we get the right breakpoints. llvm-svn: 269004
* Make destructor breakpoint location test more resilientPavel Labath2016-04-152-8/+43
| | | | | | | | | | | | | | | | | | | | | | Summary: The original breakpoint location test was failing for linux, because the compilers here tend to merge the full-object and subobject destructors even at -O0 (as a result, we are getting only 2 breakpoint locations, and not 4 as the test expected. The fixup in r266164 substantially weakened the test, as it now did not check whether both kinds of destructors were being found. Because of these contraints, I have altered the logic of the test. It sets the breakpoint by name, and then independently verifies that the breakpoint is set on the correct demangled symbol name (which is not very meaningful since both kinds of destructors demangle to the same name) *and* the correct symbol address (which is obtained by looking up the mangled symbol name). Reviewers: clayborg Subscribers: ovyalov, zturner, lldb-commits Differential Revision: http://reviews.llvm.org/D19052 llvm-svn: 266416
* Support Linux on SystemZ as platformUlrich Weigand2016-04-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for Linux on SystemZ: - A new ArchSpec value of eCore_s390x_generic - A new directory Plugins/ABI/SysV-s390x providing an ABI implementation - Register context support - Native Linux support including watchpoint support - ELF core file support - Misc. support throughout the code base (e.g. breakpoint opcodes) - Test case updates to support the platform This should provide complete support for debugging the SystemZ platform. Not yet supported are optional features like transaction support (zEC12) or SIMD vector support (z13). There is no instruction emulation, since our ABI requires that all code provide correct DWARF CFI at all PC locations in .eh_frame to support unwinding (i.e. -fasynchronous-unwind-tables is on by default). The implementation follows existing platforms in a mostly straightforward manner. A couple of things that are different: - We do not use PTRACE_PEEKUSER / PTRACE_POKEUSER to access single registers, since some registers (access register) reside at offsets in the user area that are multiples of 4, but the PTRACE_PEEKUSER interface only allows accessing aligned 8-byte blocks in the user area. Instead, we use a s390 specific ptrace interface PTRACE_PEEKUSR_AREA / PTRACE_POKEUSR_AREA that allows accessing a whole block of the user area in one go, so in effect allowing to treat parts of the user area as register sets. - SystemZ hardware does not provide any means to implement read watchpoints, only write watchpoints. In fact, we can only support a *single* write watchpoint (but this can span a range of arbitrary size). In LLDB this means we support only a single watchpoint. I've set all test cases that require read watchpoints (or multiple watchpoints) to expected failure on the platform. [ Note that there were two test cases that install a read/write watchpoint even though they nowhere rely on the "read" property. I've changed those to simply use plain write watchpoints. ] Differential Revision: http://reviews.llvm.org/D18978 llvm-svn: 266308
* Attempt to fix TestCPPBreakpointLocations on Linux/Android.Oleksiy Vyalov2016-04-131-1/+1
| | | | llvm-svn: 266164
* Fix breakpoint_set_restart test for WindowsAdrian McCarthy2016-04-121-2/+8
| | | | | | | | When run with the multiprocess test runner, the getchar() trick doesn't work, so ninja check-lldb would fail on this test, but running the test directly worked fine. Differential Revision: http://reviews.llvm.org/D19035 llvm-svn: 266145
* Fixed being able to set breakpoints on destructors when we don't fully ↵Greg Clayton2016-04-121-0/+3
| | | | | | | | | | | | | | specify the demangled name. So all of the following now work: (lldb) b ~Foo (lldb) b Foo::~Foo (lldb) b Bar::Foo::~Foo Improved out C++ breakpoint locations tests as well to cover this issue. <rdar://problem/25577252> llvm-svn: 266139
* Breakpoint conditions were making result variables, which they should not do. Jim Ingham2016-04-121-0/+4
| | | | | | | | | | | | | | The result variables aren't useful, and if you have a breakpoint on a common function you can generate a lot of these. So I changed the code that checks the condition to set ResultVariableIsInternal in the EvaluateExpressionOptions that we pass to the execution. Unfortunately, the check for this variable was done in the wrong place (the static UserExpression::Evaluate) which is not how breakpoint conditions execute expressions (UserExpression::Execute). So I moved the check to UserExpression::Execute (which Evaluate also calls) and made the overridden method DoExecute. llvm-svn: 266093
* 'int' is reported as an exception on OS X not as a signal. I don't thinkJim Ingham2016-04-121-1/+1
| | | | | | this test ever succeeded on OS X. llvm-svn: 266092
* Fix TestBreakpointSetRestart failure on Android.Oleksiy Vyalov2016-04-091-6/+12
| | | | llvm-svn: 265869
* Reset continue_after_async only if neither SIGINIT nor SIGSTOP received.Oleksiy Vyalov2016-04-083-0/+61
| | | | | | http://reviews.llvm.org/D18886 llvm-svn: 265843
* Enable TestDebugBreak on x86_64 as wellPavel Labath2016-04-071-1/+1
| | | | | | Test passes there, and this would have helped me catch the snafu in the previous commit. llvm-svn: 265650
* xfail case sensitivity test on Linux.Zachary Turner2016-02-241-0/+1
| | | | | | | | | | | | There are two tests in this file. One which only runs on Windows and tests that you can set a breakpoint with mismatched case. And another that only runs on non-Windows and tests that you cannot set a breakpoint with mismatched case. This latter test is failing on non Windows platforms for some reason. It could be that the test is just written incorrectly, as I think the actual functionality actually works correctly on non-Windows platforms. llvm-svn: 261800
* Some fixes for case insensitive paths on Windows.Zachary Turner2016-02-243-0/+134
| | | | | | | | | | | | | | | | | | | Paths on Windows are not case-sensitive. Because of this, if a file is called main.cpp, you should be able to set a breakpoint on it by using the name Main.cpp. In an ideal world, you could just tell people to match the case, but in practice this can be a real problem as it requires you to know whether the person who compiled the program ran "clang++ main.cpp" or "clang++ Main.cpp", both of which would work, regardless of what the file was actually called. This fixes http://llvm.org/pr22667 Patch by Petr Hons Differential Revision: http://reviews.llvm.org/D17492 Reviewed by: zturner llvm-svn: 261771
* Remove skipIfHostPlatform and skipUnlessHostPlatform decorators.Zachary Turner2016-02-091-3/+3
| | | | llvm-svn: 260177
* A number of improvements to decorator conditionals.Zachary Turner2016-02-082-2/+2
| | | | | | | | | | | | | | | | | | | * Change the `not_in` function to be called `no_match`. This makes it clear that keyword arguments can be more than just lists. * Change the name of `_check_list_or_lambda` to `_match_decorator_property`. Again clarifying that decorator params are not always lists. * Always use a regex match when matching strings. This allows automatic support for regex matching on all decorator properties. Also support compiled regex values. * Fix a bug in the compiler check used by _decorateTest. The two arguments were reversed, the condition was always wrong. * Change one test that uses skipUnlessArch to use skipIf, to demonstrate that skipIf can now handle more scenarios. Differential Revision: http://reviews.llvm.org/D16938 llvm-svn: 260135
* Remove expectedFailureWindows decorator.Zachary Turner2016-02-084-4/+4
| | | | | | | | | | | | | | | expectedFailureWindows is equivalent to using the general expectedFailureAll decorator with oslist="windows". Additionally, by moving towards these common decorators we can solve the issue of having to support decorators that can be called with or without arguments. Once all decorators are always called with arguments, and this is enforced by design (because you can't specify the condition you're decorating for without passing an argument) the implementation of the decorators can become much simpler Differential Revision: http://reviews.llvm.org/D16936 llvm-svn: 260134
* Move the rest of the tests over to using the new decorator module.Zachary Turner2016-02-0411-16/+26
| | | | llvm-svn: 259838
* Move some of the common decorators to decorators.py.Zachary Turner2016-02-042-2/+4
| | | | | | | | | | | | This doesn't attempt to move every decorator. The reason for this is that it requires touching every single test file to import decorators.py. I would like to do this in a followup patch, but in the interest of keeping the patches as bite-sized as possible, I've only attempted to move the underlying common decorators first. A few tests call these directly, so those tests are updated as part of this patch. llvm-svn: 259807
* The SetStopInfo from a Mach Exception was setting the stopJim Ingham2016-02-031-1/+0
| | | | | | | | | | reason to None when we stop due to a trace, then noticed that we were on a breakpoint that was not valid for the current thread. That should actually have set it back to trace. This was pr26441 (<rdar://problem/24470203>) llvm-svn: 259684
OpenPOWER on IntegriCloud