summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
* Re-apply r257117 (reverted in r257138 temporarily),Jason Molenda2016-01-088-11/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with the one change that ThreadPlanStepOut::ThreadPlanStepOut will now only advance the return address breakpoint to the end of a source line, if we have source line debug information. It will not advance to the end of a Symbol if we lack source line information. This, or the recognition of the LEAVE instruction in r257209, would have fixed the regression that Siva was seeing. Both were good changes, so I've made both. Original commit message: Performance improvement: Change lldb so that it puts a breakpoint on the first branch instruction after a function return (or the end of a source line), instead of a breakpoint on the return address, to skip an extra stop & start of the inferior process. I changed Process::AdvanceAddressToNextBranchInstruction to not take an optional InstructionList argument - no callers are providing a cached InstructionList today, and if this function was going to do that, the right thing to do would be to fill out / use a DisassemblerSP which is a disassembler with the InstructionList for this address range. http://reviews.llvm.org/D15708 <rdar://problem/23309838> llvm-svn: 257210
* Add support for the LEAVE x86 instruction to AssemblyParse_x86.Jason Molenda2016-01-081-7/+38
| | | | llvm-svn: 257209
* XFAIL 2 more tests based on SWIG version.Zachary Turner2016-01-082-0/+4
| | | | | | | There's a bug in versions of SWIG prior to 3.0.8 that prevent these tests from succeeding with Python 3.x llvm-svn: 257208
* Remove XFAIL from TestThreadStates on Windows.Zachary Turner2016-01-081-1/+0
| | | | llvm-svn: 257207
* Prevent infinite recursive loop in AppleObjCTrampolineHandler constructorStephane Sezer2016-01-082-2/+7
| | | | | | | | | | | | | | | | | | | | | | | Summary: When we construct AppleObjCTrampolineHandler, if m_impl_fn_addr is invalid, we call CanJIT(). If the gdb remote process does not support allocating and deallocating memory, this call stack will include a call to the AppleObjCRuntime constructor. The AppleObjCRuntime constructor will then call the AppleObjCTrampolineHandler constructor, creating a recursive call loop that eventually overflows the stack and segfaults. Avoid this call loop by not constructing the AppleObjCTrampolineHandler within AppleObjCRuntime until we actually need to use it. Reviewers: clayborg, jingham Subscribers: sas, lldb-commits Differential Revision: http://reviews.llvm.org/D15978 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 257204
* Add note about the "thread until" command to the llvm-gdb cheatsheet.Justin Lebar2016-01-081-0/+9
| | | | | | Differential Revision: http://reviews.llvm.org/D15684 llvm-svn: 257189
* Treat an embedded int3/__debugbreak() as a breakpoint on Windows, includes a ↵Adrian McCarthy2016-01-084-39/+142
| | | | | | cross-platform test. llvm-svn: 257186
* Fix TestBatchMode for gccPavel Labath2016-01-081-1/+2
| | | | | | | gcc by default does not accept for loop declarations in C files (one must choose C99 mode first, which we don't). Place the declaration outside the loop, to make this code more conformant. llvm-svn: 257166
* Another fix for TestBatchMode on linuxPavel Labath2016-01-081-0/+17
| | | | | | | On locked down systems (such as our buildbot) one needs to do a special dance to allow attaching to processes. This commit adds this code to the TestBatchMode inferior. llvm-svn: 257165
* Fix TestBatchMode on linuxPavel Labath2016-01-081-1/+2
| | | | | | | | | | New test introduced in r257120 was failing on linux. The reason for that the regex for setting the breakpoint was being applied to the "default file", which in this case was the asm file containing the definition of the sleep() syscall (because after attach, we are stopped in the sleep function). I have changed this use the more customary way of setting the breakpoint and specifying the source file name explicitly. llvm-svn: 257160
* Revert r257117 "Performance improvement: Change lldb so that itJason Molenda2016-01-088-148/+11
| | | | | | | | puts a breakpoint" it is causing a regression in the TestStepNoDebug test case on ubuntu 14.04 with gcc 4.9.2. Thanks for the email Siva. I'll recommit when I've figured out the regression. llvm-svn: 257138
* Fix dwarf sequence insertionsStephane Sezer2016-01-081-0/+7
| | | | | | | | | | | | | | | | | | | | | | Summary: If two dwarf sequences begin with entries that have identical addresses, it is possible for the comparator to order the first entry of the new sequence between the first and second entries of the existing sequence. This will result in an attempted insertion of the second sequence inside of the first sequence, which is invalid. Ensure that insertions only occur in between existing sequences. Reviewers: andrew.w.kaylor, clayborg Subscribers: sas, lldb-commits Differential Revision: http://reviews.llvm.org/D15979 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 257132
* Change the key name for the libdispatch queue serial number fromJason Molenda2016-01-082-14/+14
| | | | | | | | | "qserial" to "qserialnum" because "qserial" looks a lot like the queue type (either 'serial' or 'concurrent') and can be confusing to read through. debugserver passes these up either in the questionmark ("T") packet, or in the response to the jThreadsInfo packet. llvm-svn: 257121
* Fix a glitch in the Driver's batch mode when used with "attach". Jim Ingham2016-01-086-17/+142
| | | | | | | | | | | | | | Batch mode is supposed to stop execution and return control to the user when an exceptional stop occurs (crash, signal or instrumentation). But attach always stops with a SIGSTOP on OSX (maybe on Linux too?) which would short circuit the rest of the commands given. This change allows a command result object to indicate that it expected to leave the process stopped with an exceptional stop reason, and it is okay for batch mode to keep going. <rdar://problem/22243143> llvm-svn: 257120
* Performance improvement: Change lldb so that it puts a breakpointJason Molenda2016-01-088-11/+148
| | | | | | | | | | | | | | | | | | | on the first branch instruction after a function return (or the end of a source line), instead of a breakpoint on the return address, to skip an extra stop & start of the inferior process. I changed Process::AdvanceAddressToNextBranchInstruction to not take an optional InstructionList argument - no callers are providing a cached InstructionList today, and if this function was going to do that, the right thing to do would be to fill out / use a DisassemblerSP which is a disassembler with the InstructionList for this address range. http://reviews.llvm.org/D15708 <rdar://problem/23309838> llvm-svn: 257117
* Make sure we don't send qModuleInfo packets unnecessarily.Stephane Sezer2016-01-082-1/+13
| | | | | | | | | | | | | | Summary: Some debug servers don't support it so there's no point in spamming this. Reviewers: clayborg Subscribers: fjricci, lldb-commits Differential Revision: http://reviews.llvm.org/D15972 llvm-svn: 257116
* Better scheme to lookup alternate mangled name when looking up function address.Siva Chandra2016-01-0719-96/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change is relevant for inferiors compiled with GCC. GCC does not emit complete debug info for std::basic_string<...>, and consequently, Clang (the LLDB compiler) does not generate correct mangled names for certain functions. This change removes the hard-coded alternate names in ItaniumABILanguageRuntime.cpp. Before the hard-coded names were put in ItaniumABILanguageRuntime.cpp, one could not evaluate std::string methods (ex. std::string::length). After putting in the hard-coded names, one could evaluate them. However, it did not still enable one to call methods on, say for example, std::vector<string>. This change makes that possible. There is some amount of incompleteness in this change. Consider the following example: std::string hello("hello"), world("world"); std::map<std::string, std::string> m; m[hello] = world; One can still not evaluate the expression "m[hello]" in LLDB. Will address this issue in another pass. Reviewers: jingham, vharron, evgeny777, spyffe, dawn Subscribers: clayborg, dawn, lldb-commits Differential Revision: http://reviews.llvm.org/D12809 llvm-svn: 257113
* XFAIL TestMultithreaded on linuxPavel Labath2016-01-071-1/+1
| | | | | | Test sometimes fails even during the reruns, upgrading to xflaky to xfail. llvm-svn: 257068
* Remove duplicate header added in r256927Ewan Crawford2016-01-071-1/+0
| | | | | | | | | r256927 included a duplicate StreamString header file. This patch simply removes the duplicate. Author: Luke Drummond <luke.drummond@codeplay.com> Differential Revision: http://reviews.llvm.org/D15948 llvm-svn: 257061
* Remove some Windows->Android XTIMEOUTsPavel Labath2016-01-071-5/+0
| | | | llvm-svn: 257052
* XFAIL TestEvents.test_add_listener_to_broadcasterPavel Labath2016-01-071-1/+1
| | | | | | Upgrade flaky to xfail, as the test sometimes fails even during the rerun. llvm-svn: 257050
* [RenderScript] Improve file format for saving RS allocationsEwan Crawford2016-01-072-29/+154
| | | | | | | | | | | Updates the file format for storing RS allocations to a file, so that the format now supports struct element types. The file header will now contain a subheader for every RS element and it's descendants. Where an element subheader contains element type details and offsets to the subheaders of that elements fields. Patch also improves robustness when loading incorrect files. llvm-svn: 257045
* fixup lldbinline-style tests to clean up Makefiles and *.d filesTodd Fiala2016-01-061-4/+4
| | | | | | | | | The lldbinline inline-test mechanism will create a Makefile if one does not exist in the test directory. This Makefile and its *.d files were not getting cleaned up after a test run, leaving trash in the source tree. llvm-svn: 256961
* [Renderscript] Fix stack argument inspection.Aidan Dodds2016-01-061-43/+42
| | | | | | | Function arguments that were spilled and passed on the stack were incorrectly read. The value was written back into the output pointer rather then the memory being pointed to. llvm-svn: 256941
* Remove XTIMEOUT from TestMultithreaded on linuxPavel Labath2016-01-062-5/+2
| | | | | | instead, mark the test as expected flaky, which will trigger a rerun in case the test hangs. llvm-svn: 256935
* Fix build warnings after rL256915Bhushan D. Attarde2016-01-061-8/+8
| | | | llvm-svn: 256929
* Fix a bug in lldbutil.expect_state_changesPavel Labath2016-01-061-10/+18
| | | | | | | | The logic for skipping over the stop-and-restart events was incorrect as it was also skipping the expectations. Implement it properly. No test is affected by this as they were not encountering these events, but I encountered this issue when trying to use this function in a new test. llvm-svn: 256928
* Add LogDump methods to lldb_private::StringList.Ewan Crawford2016-01-062-0/+61
| | | | | | | | | This patch eases the printing of iterable string containers. Author: Luke Drummond <luke.drummond@codeplay.com> Differential Revision: http://reviews.llvm.org/D15773 llvm-svn: 256927
* XFAIL TestMiSymbol on linuxPavel Labath2016-01-061-0/+1
| | | | | | new test introduced in r256863 fails on linux. llvm-svn: 256925
* [LLDB][MIPS32]Merge emulation of similar instructionsBhushan D. Attarde2016-01-062-1917/+521
| | | | | | | | | | | SUMMARY: This patch merges emulation of similar instructions into a single function (wherever possible) to remove code duplication. Reviewers: clayborg Subscribers: mohit.bhakkad, sagar, jaydeep, lldb-commits Differential Revision: http://reviews.llvm.org/D15886 llvm-svn: 256915
* Addresses an unsigned underflow situation that can occur when dumping an ↵Kate Stone2016-01-061-2/+2
| | | | | | | | empty command history. One example where this occurs in practice is starting the Swift REPL and typing ":command history" since REPL commands aren't stored in the LLDB command prompt history. llvm-svn: 256888
* Apply missed changes from svn r256863 "Add support for "source info" and use ↵Dawn Perchik2016-01-063-7/+7
| | | | | | | | | it to fix MI's -symbol-list-lines.". Patch is part of Differential Revision: http://reviews.llvm.org/D15593 Differential Revision: http://reviews.llvm.org/D15904 llvm-svn: 256877
* Add support for "source info" and use it to fix MI's -symbol-list-lines.Dawn Perchik2016-01-056-71/+648
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support the command 'source info' as follows: (lldb) help source info Display source line information (as specified) based on the current executable's debug info. Syntax: source info <cmd-options> Command Options Usage: source info [-c <count>] [-s <shlib-name>] [-f <filename>] [-l <linenum>] [-e <linenum>] source info [-c <count>] [-s <shlib-name>] [-n <symbol>] source info [-c <count>] [-a <address-expression>] -a <address-expression> ( --address <address-expression> ) Lookup the address and display the source information for the corresponding file and line. -c <count> ( --count <count> ) The number of line entries to display. -e <linenum> ( --end-line <linenum> ) The line number at which to stop displaying lines. -f <filename> ( --file <filename> ) The file from which to display source. -l <linenum> ( --line <linenum> ) The line number at which to start the displaying lines. -n <symbol> ( --name <symbol> ) The name of a function whose source to display. -s <shlib-name> ( --shlib <shlib-name> ) Look up the source in the given module or shared library (can be specified more than once). For example: (lldb) source info --file x.h Lines for file x.h in compilation unit x.cpp in `x [0x0000000100000d00-0x0000000100000d10): /Users/dawn/tmp/./x.h:10 [0x0000000100000d10-0x0000000100000d1b): /Users/dawn/tmp/./x.h:10 The new options are used to fix the MI command: -symbol-list-lines <file> which didn't work for header files because it called: target modules dump line-table <file> which only dumps line tables for a compilation unit. The patch also fixes a bug in the error reporting when no files were supplied to the command. Previously you'd get: (lldb) target modules dump line-table error: Syntax: error: no source filenames matched any command arguments Now you get: error: file option must be specified. Reviewed by: clayborg, jingham, ki.stfu Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D15593 llvm-svn: 256863
* Add logging to SBProcess::GetRestartedFromEventPavel Labath2016-01-051-1/+8
| | | | llvm-svn: 256853
* Fix a typo in Process.cppPavel Labath2016-01-051-1/+1
| | | | llvm-svn: 256852
* Fix a typo in lldbutil.pyPavel Labath2016-01-051-1/+1
| | | | llvm-svn: 256851
* Fix for undefined behavior while updating PC value on arm-linuxOmair Javaid2016-01-051-1/+18
| | | | | | Differential revision: http://reviews.llvm.org/D15877 llvm-svn: 256847
* Mark a test_lldbmi_gdb_set_target_async_on as flaky on linuxPavel Labath2016-01-051-0/+1
| | | | | | Test fails in about 1% of buildbot runs. Marking as flaky to avoid the noise. llvm-svn: 256835
* [LLDB][MIPS] Make register read/write to set/get the size of register ↵Sagar Thakur2016-01-051-3/+9
| | | | | | | | | | | | | | according to abi. Summary: For O32 abi register size should be 4 bytes. For N32 and N64 abi register size should be 8 bytes. This patch will make register read/write to set/get the size of register according to abi. Reviewers: clayborg, tberghammer Subscribers: lldb-commits, nitesh.jain, mohit.bhakkad, bhushan, jaydeep Differential: http://reviews.llvm.org/D15884 llvm-svn: 256834
* Revert r256769Ewan Crawford2016-01-052-2/+2
| | | | | | | | | Reverts "Use correct format identifiers to print something meaningful." Original format specifiers were correct. Instead use void* casts to remove warnings, since this is what the %p specifier expects. llvm-svn: 256833
* Remove XTIMEOUT from TestEvents on linuxPavel Labath2016-01-051-1/+0
| | | | | | | I'm getting rid of the expected timeouts. I'll XFAIL/skip any tests that show up as failing after this (I haven't seen any when running locally, but maybe the buildbot will disagree). llvm-svn: 256827
* Remove old flaky test rerun logicPavel Labath2016-01-051-23/+3
| | | | | | | | | | | | | | Summary: This removes the old logic for rerunning flaky tests. The new test runners will take care of rerunning failing tests. Reviewers: tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D15855 llvm-svn: 256824
* [FreeBSD] Use a cast sledgehammer to placate newer versions of clang.Davide Italiano2016-01-041-2/+2
| | | | | | Now lldb can build on FreeBSD with -Werror again. llvm-svn: 256771
* Use correct format identifiers to print something meaningful.Davide Italiano2016-01-042-2/+2
| | | | llvm-svn: 256769
* [Commands] Get rid of unused typedefs.Davide Italiano2016-01-041-5/+0
| | | | llvm-svn: 256766
* Remove XTIMEOUT from TestRegisters on linuxPavel Labath2016-01-041-1/+0
| | | | | | | I suspect the test was hanging due to the attach deadlock. This was fixed and the test has passed last 200 buildbot runs. llvm-svn: 256755
* Remove XTIMEOUT from TestThreadStepOut on linuxPavel Labath2016-01-041-1/+0
| | | | | | The whole test is skipped already, so it's not running anyway. llvm-svn: 256752
* Remove XTIMEOUT from TestHelloWorld on linuxPavel Labath2016-01-041-3/+0
| | | | | | | I think it was timing out because of the attach deadlocks, which are now fixed. In any case, it has passed last 200 buildbot runs, so I am enabling it. llvm-svn: 256748
* Remove XTIMEOUT from TestExitDuringStep on linuxPavel Labath2016-01-041-1/+0
| | | | | | | The test has passed last 200 buildbot runs, so it's hopefully working now. I'll watch buildbots for signs of trouble. llvm-svn: 256746
* Remove XTIMEOUT from TestCreateAfterAttach on linuxPavel Labath2016-01-041-1/+0
| | | | | | | I believe the cause for this was the attach lockup fixed in r246756. I will enable this tests and observe the buildbots for signs of problems. llvm-svn: 256744
OpenPOWER on IntegriCloud