summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins
Commit message (Collapse)AuthorAgeFilesLines
...
* Add ability to override JIT expr compiler options.Aidan Dodds2016-02-031-25/+78
| | | | | | | | | Runtimes should be able to pass custom compilation options to the JIT for their stack frame. This patch adds a custom expression options member class to LanguageOptions, and modifies the clang expression evaluator to check the current runtime for those options. If those options are available on the runtime, they are passed to the clang compiler. Committed for Luke Drummond. Differential Revision: http://reviews.llvm.org/D15527 llvm-svn: 259644
* [RenderScript] Use LLVM DWARF language enumEwan Crawford2016-02-031-1/+1
| | | | | | | | | | | | | A DWARF language vender extension for RenderScript was added to LLVM in r259348(http://reviews.llvm.org/D16409) We should use this generated enum instead of the hardcoded value. RenderScript is also based on C99 with some extensions, so we want to use ClangASTContext when RS is detected. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D16766 llvm-svn: 259634
* Set correct thread stop info when single-step lands on a breakpoint [Windows]Adrian McCarthy2016-02-021-5/+19
| | | | | | | | I don't understand how this worked before, but this fixes the recent test regressions on Windows in TestConsecutiveBreakpoints.py. Differential Revision: http://reviews.llvm.org/D16825 llvm-svn: 259605
* Revert "[NFC] Cleanup RangeMap.h"Todd Fiala2016-02-021-175/+0
| | | | | | | This reverts commit r259538. Caused 92 test failures on the OS X testbot. llvm-svn: 259556
* [NFC] Cleanup RangeMap.hTamas Berghammer2016-02-021-0/+175
| | | | | | | | | | | | | | | | | The file contained very similar 4 implementation of the same data structure with a lot of duplicated code and some minor API differences. This CL refactor the class to eliminate the duplicated codes and to unify the APIs. RangeMap.h also contained a class called AddressDataArray what have very little added functionality over an std::vector and used only by ObjectFileMacO The CL moves the class to ObjectFileMachO.cpp as it isn't belongs into RangeMap.h and shouldn't be used in new places anyway because of the little added functionality. Differential revision: http://reviews.llvm.org/D16769 llvm-svn: 259538
* Fix single stepping over the IT instructionTamas Berghammer2016-02-021-5/+16
| | | | | | | | | | | | | | | | | The ARM instruction emulator had 2 bugs related to the handling of the IT instruction causing an error in single stepping: * We haven't initialized the IT mask from the CPSR so if the last instruction of the IT block is a branch and the condition is false then the emulator evaluated the branch what resulted in an incorrect pc for the next instruction. * The ITSTATE was advanced before the execution of each instruction. As a result the emulator was using the condition of following instruction in every case. The ITSTATE should be edvanced after the execution of an instruction except after an IT instruction. Differential revision: http://reviews.llvm.org/D16772 llvm-svn: 259509
* Fix build after clang interface change in r259489Pavel Labath2016-02-021-3/+3
| | | | llvm-svn: 259494
* Fix single-stepping onto a breakpointPavel Labath2016-02-022-26/+8
| | | | | | | | | | | | | | | Summary: r259344 introduced a bug, where we fail to perform a single step, when the instruction we are stepping onto contains a breakpoint which is not valid for this thread. This fixes the problem and add a test case. Reviewers: tberghammer, emaste Subscribers: abhishek.aggarwal, lldb-commits, emaste Differential Revision: http://reviews.llvm.org/D16767 llvm-svn: 259488
* NetBSD: Define initial RegisterContextNetBSD_x86_64Kamil Rytarowski2016-02-023-0/+400
| | | | | | | | | | | | Summary: Add basic support, i386 version will be added later. Reviewers: emaste, joerg, clayborg, tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D16508 llvm-svn: 259462
* Set correct ThreadStopInfo in case of trace eventAbhishek Aggarwal2016-02-012-11/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: - The patch solves Bug 23478 and Bug 19311. Resolving Bug 23478 also resolves Bug 23039. Correct ThreadStopInfo is set for Linux and FreeBSD platforms. - Summary: When a trace event is reported, we need to check whether the trace event lands at a breakpoint site. If it lands at a breakpoint site then set the thread's StopInfo with the reason 'breakpoint'. Else, set the reason to be 'Trace'. Change-Id: I0af9765e782fd74bc0cead41548486009f8abb87 Signed-off-by: Abhishek Aggarwal <abhishek.a.aggarwal@intel.com> Reviewers: jingham, emaste, lldb-commits, clayborg, ovyalov Subscribers: emaste Differential Revision: http://reviews.llvm.org/D16720 llvm-svn: 259344
* Revert "fix up missing header from change r259084."Todd Fiala2016-01-291-1/+0
| | | | | | | | This change was made based on a bad signal from the Green Dragon LLDB builder. This change was not needed. Reverting out r259114. llvm-svn: 259216
* [RenderScript] Remove unused RS commandEwan Crawford2016-01-292-55/+2
| | | | | | | | | | Patch deletes the 'language renderscript module probe' command. This command was present in the initial commit to help debug the plugin. However we haven't used it recently and it's functionality is unclear, so can be removed entirely. Also add back 'kernel coordinate' command, removed by accident in clang format patch r259056. llvm-svn: 259181
* fix up missing header from change r259084.Todd Fiala2016-01-281-0/+1
| | | | llvm-svn: 259114
* Remove autoconf support from source directories.Eugene Zelenko2016-01-2872-1108/+0
| | | | | | Differential revision: http://reviews.llvm.org/D16662 llvm-svn: 259098
* Fix build after rL259070.Chaoren Lin2016-01-281-1/+1
| | | | llvm-svn: 259086
* Update lldb for API change in clang r259070.Manman Ren2016-01-281-1/+1
| | | | llvm-svn: 259084
* [Renderscript] Clang-format the renderscript plugin.Aidan Dodds2016-01-282-754/+819
| | | | | | Run clang-format over the renderscript plugin and fix common formatting deviations. llvm-svn: 259056
* Fix const cast error for MSVC2015 build.Aidan Dodds2016-01-281-1/+1
| | | | | | | | | The Visual Studio 2015 build was failing with the following error: error C2440: 'initializing': cannot convert from 'const char [12]' to 'char *' This should fix the problem by initializing a non const char array, instead of taking a pointer to const static data. llvm-svn: 259042
* A while back in revison 244716 we added support for getting the host OS ↵Greg Clayton2016-01-281-1/+2
| | | | | | | | version info from debugserver. We added keys to "qHostInfo" that were "osmajor", "osminor" and "ospatch", but no one ever parsed those, so I am removing them from debugserver. We accidentally also added a "version" key to qHostInfo instead of "os_version". So now we need to support both "version" and "os_version" in qHostInfo since we have debugserver binaries out in the wild that support this old packet type. I have updated debugserver ot use the correct "os_version" for future compatability or correctness. <rdar://problem/24378699> llvm-svn: 259003
* Update for LLVM changeBenjamin Kramer2016-01-263-6/+6
| | | | llvm-svn: 258819
* [RenderScript] Provide option to specify a single allocation to printEwan Crawford2016-01-262-22/+23
| | | | | | | | Patch replaces the 'renderscript allocation list' command flag --refresh, with a new option --id <ID>. This new option only prints the details of a single allocation with a given id, rather than printing all the allocations. Functionality from the removed '--refresh' flag will be moved into its own command in a subsequent commit. llvm-svn: 258800
* Set symbol types for function symbols loaded from PE/COFFAdrian McCarthy2016-01-262-6/+22
| | | | | | | | | | | | | | | | This fixes the regression of several tests on Windows after rL258621. The root problem is that ObjectFilePECOFF was not setting type information for the symbols, and the new CL rejects symbols without type information, breaking functionality like thread step-over. The fix sets the type information for functions (and creates a TODO for other types). Along the way, I fixed some typos and formatting that made the code I was debugging harder to understand. In the long run, we should consider replacing most of ObjectFilePECOFF with the COFF parsing code from LLVM. Differential Revision: http://reviews.llvm.org/D16563 llvm-svn: 258758
* Fix swig typemap for SBEvent.Zachary Turner2016-01-252-0/+119
| | | | | | | | | | | This needs to be able to handle bytes, strings, and bytearray objects. In Python 2 this was easy because bytes and strings are the same thing, but in Python 3 the 2 cases need to be handled separately. So as not to mix raw Python C API code with PythonDataObjects code, I've also introduced a PythonByteArray class to PythonDataObjects to make the paradigm used here consistent. llvm-svn: 258741
* Always try to read DW_TAG_typedef types from DWO files first if we can. Greg Clayton2016-01-211-1/+24
| | | | | | | | | | | | | | | A lot of C code uses code like: typedef struct { int a; } FooType; This creates debug info with an anonymous struct (a DW_TAG_structure_type with no DW_AT_name) and then a DW_TAG_typedef that points to the anonymous structure type. When a typedef is from a module and clang uses -gmodules and -fmodules, then we can end up trying to resolve an anonymous structure type in a DWO symbol file. This doesn't work very well when the structuture has no name, so we now check if a typedef comes from a module, and we directly resolve the typedef type in the module and copy it over. The version we copy from the module of course is correctly able to find the structure in the DWO symbol file, so this fixes the issues we run into. <rdar://problem/24092915> llvm-svn: 258443
* Add CalculateSymbolSizes in ObjectFilePECOFF::GetSymtab to ensure that ↵Adrian McCarthy2016-01-211-0/+1
| | | | | | | | | | (nearly) all the symbols have sizes. This fixes the `thread step-over` regression exposed by http://reviews.llvm.org/D16186 , which depends on the symbols having actual sizes. Nine tests on Windows had started failing as a result. They all work again with this fix. Differential Revision: http://reviews.llvm.org/D16415 llvm-svn: 258429
* When ObjectFileMachO reads a Mach-O file for a 32-bit arm cpu,Jason Molenda2016-01-211-3/+16
| | | | | | | | | | | | | | | | | | | | | | set the triple's "vendor" field to Apple. We don't want to assume a vendor of Apple for all Mach-O files - this breaks x86_64 EFI debugging where they put non-Apple binaries in a Mach-O format for ease of handling. But on armv7, Apple's ABI always uses r7 as the frame pointer register; if we don't set the Vendor field to Apple, we can pick up a generic armv7 ABI where the fp is r11 (or r7 for thumb) which breaks backtracing altogether. Greg is reluctant for us to make any assumptions about the Vendor here, but we'll see how this shakes out. It's such a big problem on armv7 if we don't know this is using the Apple ABI that it's worth trying this approach. <rdar://problem/22137561> llvm-svn: 258387
* Fix clang warning in RenderScriptRuntimePavel Labath2016-01-201-1/+1
| | | | | | | | std::array should have "the same semantics as a struct holding a C-style array T[N] as its only non-static data member", so the initialization should have one more level of braces. Hopefully, no compiler will object to that. llvm-svn: 258306
* [RenderScript] New command for viewing coordinate of current kernel invocationEwan Crawford2016-01-202-35/+138
| | | | | | | Patch adds command 'language renderscript kernel coordinate' for printing the kernel index in (x,y,z) format. This is done by walking the call stack and looking for a function with suffix '.expand', as well as the frame variables containing the coordinate data. llvm-svn: 258303
* Some 32-bit arm corefiles on darwin may have their general purposeJason Molenda2016-01-203-5/+9
| | | | | | | | | | register set indicated by ARM_THREAD_STATE32 (value 9) instead of the old ARM_THREAD_STATE (value 1); this patch changes lldb to accept either register set flavor code. <rdar://problem/24246257> llvm-svn: 258289
* Fix for Bug 25338Ravitheja Addepally2016-01-192-14/+63
| | | | | | | | | | | | | | | | Summary: The issue arises because LLDB is not able to read the vdso library correctly. The fix adds memory allocation callbacks to allocate sufficient memory in case the requested offsets don't fit in the memory buffer allocated for the ELF. Reviewers: lldb-commits, clayborg, deepak2427, ovyalov, labath, tberghammer Differential Revision: http://reviews.llvm.org/D16107 llvm-svn: 258122
* Unconditionally accept symbol sizes from elfTamas Berghammer2016-01-191-2/+10
| | | | | | | | | | | | | | | | | | | The ELF symbol table always contain the size of the symbols so we don't have to try to guess them based on the address of the next symbol (it is needed for mach-o). The change fixes an issue when a symbol is removed after a 0 size symbol (e.g. because the second one is not public) what previously caused the symbol lookup algorithm to end up with showing the 0 size symbol even for the later addresses (what are not part of any symbol). That symbol lookup error can confuse the user and also confuses the current stack unwinder. Re-commit this CL after fixing the issue with gcc-4.9.2 on i386 Linux. Differential revision: http://reviews.llvm.org/D16186 llvm-svn: 258113
* Update for llvm change. NFC.Rafael Espindola2016-01-183-6/+6
| | | | llvm-svn: 258080
* Revert "Unconditionally accept symbol sizes from elf"Tamas Berghammer2016-01-181-4/+2
| | | | | | | | It causes issues for i386 when compiling with gcc-4.9.2 This reverts commit e248214a3eab8e244095f97d1996c991cb988cc4. llvm-svn: 258043
* Unconditionally accept symbol sizes from elfTamas Berghammer2016-01-181-2/+4
| | | | | | | | | | | | | | | | | The ELF symbol table always contain the size of the symbols so we don't have to try to guess them based on the address of the next symbol (it is needed for mach-o). The change fixes an issue when a symbol is removed after a 0 size symbol (e.g. because the second one is not public) what previously caused the symbol lookup algorithm to end up with showing the 0 size symbol even for the later addresses (what are not part of any symbol). That symbol lookup error can confuse the user and also confuses the current stack unwinder. Differential revision: http://reviews.llvm.org/D16186 llvm-svn: 258040
* [RenderScript] Remove mips specific expressionsEwan Crawford2016-01-182-180/+90
| | | | | | | | Reverts earlier commit r254910, which used function pointers for jitted expressions to avoid a Mips64 compiler bug. Bug has since been fixed, and compiler longer issues the problem instruction. Author: Dean De Leo <dean@codeplay.com> llvm-svn: 258038
* The ASAN report fetching code had two latent bugs:Jim Ingham2016-01-151-2/+9
| | | | | | | | | | | | 1) It was forward declaring functions without 'extern "C"'. That used to work but only because of another bug in how we passes symbol only function names to the compiler and stopped working recently. 2) These forward declarations were in the body of the User Expression, and they actually need to go in the prefix file. <rdar://problem/24177689> llvm-svn: 257852
* Removed a redundant function call after review.Sean Callanan2016-01-141-2/+0
| | | | llvm-svn: 257818
* Enable the use of modules in the expression parser by default.Sean Callanan2016-01-142-2/+37
| | | | | | | | | | If your program refers to modules (as indicated in DWARF) we will now try to load these modules and give you access to their types in expressions. This used to be gated by a setting ("settings set target.auto-import-clang-modules true") but that setting defaulted to false. Now it defaults to true -- but you can disable it by toggling the setting to false. llvm-svn: 257812
* Fixed a crasher when dealing with table entries that have blank names.Sean Callanan2016-01-142-0/+9
| | | | | | This can happen with -gmodules tables when an anonymous struct is referred to. llvm-svn: 257786
* [RenderScript] Hook kernel invocation.Aidan Dodds2016-01-142-17/+115
| | | | | | This patch adds a hook to track kernel invocations and to track all script and allocation objects used. llvm-svn: 257772
* Fix some compiler warnings with MSVC 2015.Zachary Turner2016-01-133-2/+3
| | | | llvm-svn: 257671
* Fix an issue where scripted commands would not actually print any of their ↵Enrico Granata2016-01-132-0/+22
| | | | | | | | output if an immediate output file was set in the result object via a Python file object Fixes rdar://24130303 llvm-svn: 257644
* Silence an incorrect dwarf parsing warningTamas Berghammer2016-01-131-1/+1
| | | | | | | | | | | | We have a check what warns if the offset of a class member is greater then or equal to the size of the class. The warning is valid in most case but it is invalid when the last data member is a 0 size array because in this case the member offset can be equal to the class size (subject to alignment limitations). This CL fixis LLDB to not print out a warning in this special case. llvm-svn: 257603
* Add a small refinement to the qSymbol:: support in lldb.Jason Molenda2016-01-132-1/+48
| | | | | | | | | | | | | | | This is a packet which allows the remote gdb stub to ask for the address of a symbol in the process. lldb sends the packet (offering to provide addresses for symbol names) after every solib loaded. I changed lldb so that once the stub has indicated that it doesn't need any more symbol addresses, lldb will stop sending the qSymbol:: packet on new solib loads. This can yield a performance benefit over slower communication links when there are many solibs involved. <rdar://problem/23310049> llvm-svn: 257569
* Fix build breakage of r257502.Stephane Sezer2016-01-121-1/+1
| | | | llvm-svn: 257510
* Increase use of svr4 packets to improve performance on POSIX remotesStephane Sezer2016-01-124-145/+202
| | | | | | | | | | | | | | | | | | | | Summary: Allows the remote to enumerate the link map when adding and removing shared libraries, so that lldb doesn't need to read it manually from the remote's memory. This provides very large speedups (on the order of 50%) in total startup time when using the ds2 remote on android or Tizen devices. Reviewers: ADodds, tberghammer, tfiala Subscribers: tberghammer, sas, danalbert, llvm-commits, srhines Differential Revision: http://reviews.llvm.org/D16004 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 257502
* Try to fix the mips64 build after rL257447Tamas Berghammer2016-01-121-1/+1
| | | | llvm-svn: 257469
* Fix for TestNoreturnUnwind.py on i386Ravitheja Addepally2016-01-121-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The testcase TestNoreturnUnwind.py was failing because the unwind from the vdso library was not successful for clang compiler while it was passing for gcc. It was passing for gcc since the unwind plan used was the assembly plan and the ebp register was set by the main function in case of gcc and was not used by the functions in the call flow to the vdso, whereas clang did not emit assembly prologue for main and so the assembly unwind was failing. Normally in case of failure of assembly unwind, lldb switches to EH CFI frame based unwinding, but this was not happening for the first frame. This patch tries to fix this behaviour by falling to EH CFI frame based unwinding in case of assembly unwind failure even for the first frame. The test is still marked as XFAIL since it relys on the fix of another bug. Reviewers: lldb-commits, jingham, zturner, tberghammer, jasonmolenda Subscribers: jasonmolenda Differential Revision: http://reviews.llvm.org/D15046 llvm-svn: 257465
* Changes to lldb and debugserver to reduce extraneous memory readsJason Molenda2016-01-126-27/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | at each public stop to improve performance a bit. Most of the information lldb needed was already in the jThreadsInfo response; complete that information and catch a few cases where we could still fall back to getting the information via discrete memory reads. debugserver adds 'associated_with_dispatch_queue' and 'dispatch_queue_t keys to the jThreadsInfo response for all the threads. lldb needs the dispatch_queue_t value. And associated_with_dispatch_queue helps to identify which threads definitively don't have any queue information so lldb doesn't try to do memory reads to get that information just because it was absent in the jThreadsInfo response. Remove the queue information from the questionmark (T) packet. We'll get the information for all threads via the jThreadsInfo response - sending the information for the stopping thread (on all the private stops, plus the less frequent public stop) was unnecessary information being sent over the wire. SystemRuntimeMacOSX will try to get information about queues by asking the Threads for them, instead of reading memory. ProcessGDBRemote changes to recognize the new keys being sent in the jThreadsInfo response. Changes to ThreadGDBRemote to track the new information. Also, when a thread is marked as definitively not associated with a libdispatch queue, don't fall back to the system runtime to try memory reads to find the queue name / kind / ID etc. <rdar://problem/23309359> llvm-svn: 257453
* [LLDB][MIPS] Fix rL255619: mips 3, 4 and 5 are 64 bit archsMohit K. Bhakkad2016-01-121-3/+3
| | | | llvm-svn: 257448
OpenPOWER on IntegriCloud