summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins
Commit message (Collapse)AuthorAgeFilesLines
* Data formatter candidate matches can be generated in a number of ways; ↵Enrico Granata2015-09-092-3/+43
| | | | | | | | | | language-based dynamic type discovery being one of them (for instance, this is what takes an 'id' and discovers that it truly is an __NSArrayI, so it should probably use the NSArray formatter) This used to be hardcoded in the FormatManager, but in a pluginized world that is not the right way to go So, move this step to the Language plugin such that appropriate language plugins for a type get a say about adding candidates to the formatters lookup tables llvm-svn: 247112
* ExpressionVariable now uses llvm::cast() instead of As...() for RTTI.Sean Callanan2015-09-082-10/+15
| | | | | | | | As part of our overall switch from hand-rolling RTTI to using LLVM-compatible methods, I've done the same for ExpressionVariable. The main documentation for how to do this is in TypeSystem.h, so I've simply referred to that. llvm-svn: 247085
* Use LLVM casting for TypeSystem so you can cast it to subclasses.Greg Clayton2015-09-082-9/+2
| | | | | | | | | | | | | | This will keep our code cleaner and it removes the need for intrusive additions to TypeSystem like: class TypeSystem { virtual ClangASTContext * AsClangASTContext() = 0; } As you can now just use the llvm::dyn_cast and other casts. llvm-svn: 247041
* Fix the handling of FPR offsets in Linux arm/aarch64 register contextsTamas Berghammer2015-09-075-9/+32
| | | | | | Differential revision: http://reviews.llvm.org/D12636 llvm-svn: 246959
* Bug 24457 - X87 FPU Special Purpose RegistersAbhishek Aggarwal2015-09-072-4/+25
| | | | | | | | | | | | | | | | | | | | Summary: - For 'register read --all' command on x86_64-Linux Platform: -- Provide correct values of X87 FPU Special Purpose Registers -- Both 32-bit & 64-bit inferiors give correct values on this Platform - Added a Test Vector: -- To verify the expected behaviour of the command Signed-off-by: Abhishek Aggarwal <abhishek.a.aggarwal@intel.com> Reviewers: ashok.thirumurthi, granata.enrico, tfiala, clayborg Differential Revision: http://reviews.llvm.org/D12592 llvm-svn: 246955
* Fix Makefile buildKeno Fischer2015-09-055-0/+60
| | | | llvm-svn: 246932
* Check for null compile unit so we don't crash.Greg Clayton2015-09-041-0/+3
| | | | llvm-svn: 246887
* Never mind, I see what the problem is on the Windows build. Attempt a fixEnrico Granata2015-09-041-1/+0
| | | | llvm-svn: 246876
* Move the C++ data formatters to the C++ language pluginEnrico Granata2015-09-0414-3/+2854
| | | | llvm-svn: 246873
* This patch separates the generic portion of ClangExpressionVariable, whichSean Callanan2015-09-042-338/+86
| | | | | | | | | stores information about a variable that different parts of LLDB use, from the compiler-specific portion that only the expression parser cares about. http://reviews.llvm.org/D12602 llvm-svn: 246871
* RenderScript pending kernel breakpoints.Ewan Crawford2015-09-042-59/+109
| | | | | | | | | | | | Currently the RS breakpoint command can only find a kernel if it's in an already loaded RS module. This patch allows users to set pending breakpoints on RenderScript kernels which will be loaded in the future. Implemented by creating a RS breakpoint resolver, to limit search scope to only RS modules. Reviewed by: clayborg, jingham Subscribers: lldb-commits, ADodds, domipheus Differential Revision: http://reviews.llvm.org/D12360 llvm-svn: 246842
* SysV ABI for i386 ArchitectureAbhishek Aggarwal2015-09-041-2/+143
| | | | | | | | | | | | | | | | | | Summary: - Capability to force return user specified values from inside of a function on lldb command terminal - Support for Integral, Pointer and Floating Point values Signed-off-by: Abhishek Aggarwal <abhishek.a.aggarwal@intel.com> Reviewers: jingham, clayborg Subscribers: tberghammer Differential Revision: http://reviews.llvm.org/D12595 llvm-svn: 246841
* Change the (internal to this file only) enum names from gcc_ toJason Molenda2015-09-041-116/+116
| | | | | | | | | | | | | ehframe_ & from gdb_ to stabs_ for clarity. Also document the fact that i386 eh_frame on Darwin has the register numbers swapped for ebp/esp from the DWARF register numbers so no one copies these defines for other i386 ABI plugins. This bug only ever existed on Darwin. No code changes, just renaming variables. llvm-svn: 246834
* SystemRuntime/MacOSX no longer need ObjCRuntime header.Bruce Mitchener2015-09-033-6/+2
| | | | | | | | | | | | | | | Summary: The AppleGetQueuesHandler code no longer needs to include a header from the AppleObjCRuntime, so we can remove workarounds that were present in the build systems. Reviewers: clayborg, jasonmolenda Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12589 llvm-svn: 246821
* Fix deadlock while attaching to inferiorsPavel Labath2015-09-032-148/+159
| | | | | | | | | | | | | | | | | | | | Summary: There was a race condition in the AsyncThread, where we would end up sending a vAttach notification to the thread before it got a chance set up its listener (this can be reproduced by adding a sleep() at the very beginning of ProcessGDBRemote::AsyncThread()). This event would then get lost and we LLDB would deadlock. I fix this by setting up the listener early on, in the ProcessGDBRemote constructor. This should improve the stability of all attach tests. For now, I am removing XTIMEOUT from TestAttachResume, and will watch the buildbots for signs of trouble. Reviewers: clayborg, ovyalov Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12552 llvm-svn: 246756
* [cmake] Remove LLVM_NO_RTTI.Bruce Mitchener2015-09-0364-129/+1
| | | | | | | | | | | | | | Summary: This doesn't exist in other LLVM projects any longer and doesn't do anything. Reviewers: chaoren, labath Subscribers: emaste, tberghammer, lldb-commits, danalbert Differential Revision: http://reviews.llvm.org/D12586 llvm-svn: 246749
* Fix cmake build.Bruce Mitchener2015-09-033-0/+7
| | | | llvm-svn: 246746
* [MIPS64] Emulate MSA branch instructionsSagar Thakur2015-09-032-36/+314
| | | | | | | | | This patch adds MSA branch instruction emulation for MIPS64. Reviewers: tberghammer, jaydeep Subscribers: tberghammer, lldb-commits, nitesh.jain, mohit.bhakkad (Mohit Bhakkad), bhushan (Bhushan Attarde) Differential: http://reviews.llvm.org/D12356 llvm-svn: 246745
* In preparation for factoring persistent variables into a generic part and aSean Callanan2015-09-032-0/+601
| | | | | | | | | | | | Clang-specific part, create the ExpressionVariable source/header file and move ClangExpressionVariable into the Clang expression parser plugin. It is expected that there are some ugly #include paths... these will be resolved by either (1) making that code use generic expression variables (once they're separated appropriately) or (2) moving that code into a plug-in, often the expression parser plug-in. llvm-svn: 246737
* Fix ObjCLanguage::MethodName::GetCategory after r246616; I was just moving ↵Jim Ingham2015-09-031-1/+1
| | | | | | things around too fast... llvm-svn: 246736
* Try to fix FreeBSD build.Zachary Turner2015-09-022-15/+15
| | | | llvm-svn: 246672
* Only create alternative thumb disassembler if the main one is armTamas Berghammer2015-09-021-2/+2
| | | | | | | | This fixes a regression caused by r245645 where creating alternative thumb disassembler was enabled even when the main disassembler is already thumb. llvm-svn: 246649
* Fix arm disassambler with specifying armv8.1a architectureTamas Berghammer2015-09-021-10/+18
| | | | | | | | | | | | | | | If no architecture is defined for the disassambler command then it uses the architecture of the target. In case of arm it will be "arm" what is treated as the oldest arm version by the LLVM disassambler causing a lot of invalid opcode in the output. This change forces the use of "armv8.1a" (the newest arm architecture) if no sub architecure was specified (either by the user or by the target) to disassamble all instruction. Differential revision: http://reviews.llvm.org/D12553 llvm-svn: 246648
* Move more functionality from the LanguageRuntimes to the Languages.Jim Ingham2015-09-027-12/+869
| | | | llvm-svn: 246616
* Use Language::LanguageIsCPlusPlus instead of doing the same switch over languageEnrico Granata2015-09-021-10/+3
| | | | llvm-svn: 246613
* Move things from the LanguageRuntime that obviously belong in the new ↵Jim Ingham2015-09-022-2/+5
| | | | | | Language plugin instead. llvm-svn: 246611
* Simplify find_first_of & find_last_of on single char.Bruce Mitchener2015-09-012-3/+3
| | | | | | | | | | | | | | | Summary: When calling find_first_of and find_last_of on a single character, we can instead just call find / rfind and make our intent more clear. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12518 llvm-svn: 246609
* Remove ABIMacOSX_i386::PrepareNormalCall().Bruce Mitchener2015-09-012-185/+0
| | | | | | | | | | | | | | | Summary: This was removed from the other ABI plugins long ago. This removes a warning that was happening in this unused code as a result of adding 2 new types to Scalar.h (e_uint128 and e_sint128). Reviewers: clayborg Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12514 llvm-svn: 246608
* Fix ProcessKDP.cpp for the change in r246578.Jim Ingham2015-09-012-16/+18
| | | | llvm-svn: 246601
* Add logging to a couple of regions of codeEnrico Granata2015-09-011-2/+22
| | | | llvm-svn: 246580
* Make ProcessWindows not create a strong reference to itself.Zachary Turner2015-09-014-12/+55
| | | | llvm-svn: 246579
* Have the Process hold a weak_ptr to the Target.Zachary Turner2015-09-0110-92/+96
| | | | llvm-svn: 246578
* Make remote-android platform to use dynamic local tcp ports when forwarding ↵Oleksiy Vyalov2015-09-016-42/+98
| | | | | | | | device ports. http://reviews.llvm.org/D12510 llvm-svn: 246574
* Add support for language plugins to provide data formatters (second attempt)Enrico Granata2015-09-011-0/+1
| | | | | | | | | | | | | | | | | Historically, data formatters all exist in a global repository (the category map) On top of that, some formatters can be "hardcoded" when the conditions under which they apply are not expressible as a typename (or typename regex) This change paves the way to move formatters into per-language buckets such that the C++ plugin is responsible for ownership of the C++ formatters, and so on The advantages of this are: a) language formatters only get created when they might apply b) formatters for a language are clearly owned by the matching language plugin The current model is one of static instantiation, that is a language knows the full set of formatters it vends and that is only asked-for once, and then handed off to the FormatManager In a future revision it might be interesting to add similar ability to the language runtimes, and monitor for certain shared library events to add even more library-specific formatters No formatters are moved as part of this change, so practically speaking this is NFC llvm-svn: 246568
* Implement DoReadMemory for Windows mini dumps.Adrian McCarthy2015-09-012-5/+93
| | | | | | Differential Revision: http://reviews.llvm.org/D12507 llvm-svn: 246558
* Make ProcessGDBRemote get a //copy// of platform Unix signals.Chaoren Lin2015-09-013-2/+10
| | | | | | | | | | | | Summary: Update to http://reviews.llvm.org/rL243618. Reviewers: jaydeep, clayborg Subscribers: labath, tberghammer, lldb-commits Differential Revision: http://reviews.llvm.org/D12420 llvm-svn: 246557
* [NativeProcessLinux] Fix detach of multithreaded inferiorsPavel Labath2015-09-011-5/+11
| | | | | | | When detaching, we need to detach from all threads of the inferior and not just the main one. Without this, a multi-threaded inferior would usually crash once the server exits. llvm-svn: 246549
* [NativeProcessLinux] Fix assertion failure when killing a processPavel Labath2015-09-011-1/+10
| | | | | | | | | Linux sometimes sends us a PTRACE_EVENT_EXIT when an inferior process gets a SIGKILL. This can be confusing, since normally we don't expect any events when the inferior is stopped. This commit adds code to handle this situation (resume the thread and let it exit normally) and avoid an assertion failure in ResumeThread(). llvm-svn: 246539
* Revert "Add support for language plugins to provide data formatters"Pavel Labath2015-09-011-1/+0
| | | | | | This reverts r246515 (and related cmake fixes) as it breaks all libcxx tests. llvm-svn: 246536
* A few small comment fixups with terminology "gcc" -> "eh_frame", "gdb" -> ↵Jason Molenda2015-09-011-6/+6
| | | | | | | | "stabs". Just noticed these while reading through some code. llvm-svn: 246530
* And of course, typosEnrico Granata2015-09-011-1/+1
| | | | llvm-svn: 246519
* Attempt at fixing the CMake buildEnrico Granata2015-09-011-0/+1
| | | | llvm-svn: 246518
* Stop objects from keeping a strong reference to the process when they should ↵Greg Clayton2015-08-316-122/+164
| | | | | | have a weak reference. llvm-svn: 246488
* Differential Review: http://reviews.llvm.org/D12363Adrian McCarthy2015-08-282-2/+60
| | | | llvm-svn: 246302
* Avoid usage of F_DUPFD_CLOEXEC where not available (e.g. kfreebsd*)Sylvestre Ledru2015-08-281-0/+14
| | | | | | | | | | | | | | | | | Summary: kfreebsd doesn't have F_DUPFD_CLOEXEC, so use it conditionally. Author: Emilio Pozuelo Monfort <pochu@debian.org> Author: Petr Salinger <Petr.Salinger@seznam.cz> Author: Gianfranco Costamagna Reviewers: emaste Subscribers: emaste Differential Revision: http://reviews.llvm.org/D12429 llvm-svn: 246294
* [LLDB][MIPS] Aligning code with rL245831Mohit K. Bhakkad2015-08-281-1/+1
| | | | | | | | Reviewers: jaydeep Subscribers: lldb-commits. Differential Revision: http://reviews.llvm.org/D12427 llvm-svn: 246293
* Made a new abstract class named "DWARFASTParser" which lives in ↵Greg Clayton2015-08-289-33/+3912
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "source/Plugins/SymbolFile/DWARF": class DWARFASTParser { public: virtual ~DWARFASTParser() {} virtual lldb::TypeSP ParseTypeFromDWARF (const lldb_private::SymbolContext& sc, const DWARFDIE &die, lldb_private::Log *log, bool *type_is_new_ptr) = 0; virtual lldb_private::Function * ParseFunctionFromDWARF (const lldb_private::SymbolContext& sc, const DWARFDIE &die) = 0; virtual bool CompleteTypeFromDWARF (const DWARFDIE &die, lldb_private::Type *type, lldb_private::CompilerType &clang_type) = 0; virtual lldb_private::CompilerDeclContext GetDeclContextForUIDFromDWARF (const DWARFDIE &die) = 0; virtual lldb_private::CompilerDeclContext GetDeclContextContainingUIDFromDWARF (const DWARFDIE &die) = 0; }; We have one subclass named DWARFASTParserClang that implements all of the clang specific AST type parsing. This keeps all DWARF parsing in the DWARF plug-in. Moved all of the DWARF parsing code that was in ClangASTContext over into DWARFASTParserClang. lldb_private::TypeSystem classes no longer have any DWARF parsing functions in them, but they can hand out a DWARFASTParser: virtual DWARFASTParser * GetDWARFParser () { return nullptr; } This keeps things clean and makes for easy merging when we have different AST's for different languages. llvm-svn: 246242
* Fixup one of the CMakeListsEnrico Granata2015-08-271-2/+2
| | | | llvm-svn: 246220
* Add a new type of plugin: Language pluginEnrico Granata2015-08-2711-0/+414
| | | | | | | | | | The Language plugin is menat to answer language-specific questions that are not bound to the existence of a process. Those are still the domain of the LanguageRuntime plugin The Language plugin will, instead, answer questions such as providing language-specific data formatters or expression evaluation At the moment, the interface is hollowed out, and empty do-nothing plugins have been setup for ObjC, C++ and ObjC++ llvm-svn: 246212
* More cleanup to make sure no one plays with DWARFDebugInfoEntry. Clients ↵Greg Clayton2015-08-2712-452/+74
| | | | | | outside of DWARFDebugInfoEntry of DWARFCompileUnit should use DWARFDIE only. llvm-svn: 246172
OpenPOWER on IntegriCloud