summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Platform
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix build on OS X after r233061Ilia K2015-03-242-1/+3
| | | | | | | | This includes following: # Add a missing Process argument when calling GetSharedModule in DynamicLoaderDarwinKernel::KextImageInfo::LoadImageUsingMemoryModule # Fix PlatformDarwinKernel::GetSharedModule prototype llvm-svn: 233084
* Fetch module specification from remote process alsoTamas Berghammer2015-03-2413-56/+31
| | | | | | | | | | | | | Previously the remote module sepcification was fetched only from the remote platform. With this CL if we have a remote process then we ask it if it have any information from a given module. It is required because on android the dynamic linker only reports the name of the SO file and the platform can't always find it without a full path (the process can do it based on /proc/<pid>/maps). Differential revision: http://reviews.llvm.org/D8547 llvm-svn: 233061
* Fix format compilation warning in PlatformAndroidRemoteGDBServer.cpp.Oleksiy Vyalov2015-03-231-1/+1
| | | | llvm-svn: 233041
* Move ADB communications to AdbClient class - to make it accessible by other ↵Oleksiy Vyalov2015-03-234-111/+277
| | | | | | | | components. http://reviews.llvm.org/D8535 llvm-svn: 233021
* [MIPS] - Register Context for MIPS64Mohit K. Bhakkad2015-03-171-0/+1
| | | | | | | | | | | | | | | | Patch by Jaydeep Patil Summery: 1. Add MIPS variants by parsing e_flags of the ELF 2. Create RegisterInfoInterface and RegisterContext for MIPS64 and MIPS64EL Reviewers: clayborg Subscribers: tberghammer, bhushan, mohit.bhakkad, sagar Differential Revision: http://reviews.llvm.org/D8166 llvm-svn: 232467
* Extend Platform(s) in order to cache remote executables using ModuleCache ↵Oleksiy Vyalov2015-03-134-12/+4
| | | | | | | | and make POSIX dynamic loader to use this flow when attaching to a remote target. http://reviews.llvm.org/D8306 llvm-svn: 232194
* Add filepath to qModuleInfo packetTamas Berghammer2015-03-131-0/+7
| | | | | | | | | | | The file path is currently required on android because the executables only contain the name of the system libraries without their path. This CL add an extra field to the qModuleInfo packet to return the full path of a modul and add logic to locate a shared module on android. Differential revision: http://reviews.llvm.org/D8221 llvm-svn: 232156
* Fix SDK selection using "platform select" when --sysroot/--version/--build ↵Ilia K2015-03-122-1/+44
| | | | | | | | | | | | | | | | | | | | | | | | | options were specified Summary: This patch fixes SDK selection in the following case: ``` platform select remote-ios --sysroot "/Users/IliaK/Library/Developer/Xcode/iOS DeviceSupport/8.1.2 (12B440)" --build 12B440 --version 8.1.2 target create --arch arm64 "~/Project1.app" ``` Currently the lldb selects a first SDK version (in name order) in directory and then updates it after the device is connected. This approach ignores user's arguments and actually "platform select" command doesn't make sense. After this patch, lldb takes a SDK which matches to user's arguments. Reviewers: jasonmolenda, clayborg Reviewed By: clayborg Subscribers: lldb-commits, clayborg, jasonmolenda, aemerson Differential Revision: http://reviews.llvm.org/D8249 llvm-svn: 232017
* Remove "virtual" and add "override" to all virtual functions.Greg Clayton2015-03-121-22/+22
| | | | llvm-svn: 231991
* Add Utility/ModuleCache class and integrate it with PlatformGDBRemoteServer ↵Oleksiy Vyalov2015-03-108-5/+126
| | | | | | | | - in order to allow modules caching from remote targets. http://reviews.llvm.org/D8037 llvm-svn: 231734
* Fix race condition with -o "process launch" on linuxPavel Labath2015-03-061-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | Summary: starting a debug session on linux with -o "process launch" lldb parameter was failing since Target::Launch (in sychronous mode) is expecting to be able to receive public process events. However, PlatformLinux did not set up event hijacking on process launch, which caused these events to be processed elsewhere and left Target::Launch hanging. This patch enables event interception in PlatformLinux (which was commented out). Upon enabling event interception, I noticed an issue, which I traced back to the inconsistent state of public run lock, which remained false even though public and private process states were "stopped". I addressed this by making sure the run lock is "stopped" upon exit from WaitForProcessToStop (which already had similar provisions for other return paths). Test Plan: This should fix the intermittent TestFormats failure we have been experiencing on Linux. Reviewers: jingham, clayborg, vharron Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D8079 llvm-svn: 231460
* Don't #include clang headers from BreakpointLocation.hZachary Turner2015-03-042-0/+3
| | | | llvm-svn: 231263
* Don't #include FormatManager.h from Debugger.hZachary Turner2015-03-033-0/+4
| | | | | | | | Debugger.h is a huge file that gets included everywhere, and FormatManager.h brings in a ton of unnecessary stuff and doesn't even use anything from it in the header. llvm-svn: 231161
* Linux - debugging of local processes via lldb-gdbserverVince Harron2015-03-011-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of lldb calling the ptrace APIs directly, it launches an llgs instance and communicates with it via the remote debug protocol. This has two advantages. There is more code shared between the remote debugging code path and the local debugging code path. If a feature works in remote, it probably works locally and vice-versa. It makes us more architecturally similar to OSX (which also does local debugging via a connection to debugserver). This path is called LLGS local. We think that this configuration is now at parity with (or better than) local linux debugging. It is currently invoked if you have an environment variable defined "PLATFORM_LINUX_FORCE_LLGS_LOCAL" We would like to switch to LLGS local as the default path and only use the non-LLGS path if someone has an environment variable defined "PLATFORM_LINUX_DISABLE_LLGS_LOCAL" Later, if all goes well, we would like to remove non-LLGS local debugging support to simplify the codebase and avoid confusion. llvm-svn: 230919
* Advertise 32 bit support for PlatformRemoteGDBServer on 64 bit systems.Chaoren Lin2015-03-011-3/+6
| | | | | | | | | | Reviewers: vharron, clayborg, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D7970 llvm-svn: 230906
* If we are trying to load the scripting resource for a module whose name ↵Enrico Granata2015-02-261-3/+15
| | | | | | | | happens to be a Python keyword, then prefix the filename with an _ (e.g. a module named def will load _def.py) Fixes rdar://13893506 llvm-svn: 230602
* Create ScopedTimeout class for GDBRemoteCommunicationTamas Berghammer2015-02-241-3/+7
| | | | | | | | | | This new class makes it easier to change the timeout of a GDBRemoteCommunication instance for a short time and then restore it to its original value. Differential revision: http://reviews.llvm.org/D7826 llvm-svn: 230319
* Remove EOL whitespace from PlatformLinuxEd Maste2015-02-232-24/+24
| | | | | | This reduces the noise when diffing PlatformFreeBSD and PlatformLinux. llvm-svn: 230251
* Factor out common URL handling code in PlatformRemoteGDBServerPavel Labath2015-02-191-23/+17
| | | | | | | | | | | | | | | Summary: this also gets rid of a compiler warning in release builds by using a dynamically allocated buffer. Therefore, a size assertion is not necessary (and probably should have been an error in the first place). Reviewers: tberghammer Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D7751 llvm-svn: 229878
* Make PlatformPOSIX::KillProcess to delegate to a remote platform if connected.Oleksiy Vyalov2015-02-172-0/+15
| | | | | | http://reviews.llvm.org/D7660 llvm-svn: 229577
* Disable LaunchNativeProcess in PlatformLinux for non Linux hostsTamas Berghammer2015-02-161-0/+8
| | | | llvm-svn: 229379
* Enable process launching on android from lldb-gdbserverTamas Berghammer2015-02-163-26/+40
| | | | | | | | | Currently it is uses the same code used on linux. Will be replaced with android specific code if needed. Differential Revision: http://reviews.llvm.org/D7613 llvm-svn: 229371
* Fix configure+make build broken by r228943Tamas Berghammer2015-02-131-1/+1
| | | | llvm-svn: 229098
* Add Initialize/Terminate method to Platform base pluginTamas Berghammer2015-02-1210-0/+40
| | | | | | | | | | | | | Platform holds a smart pointer to each platform object created in a static variable what cause the platform destructors called only on program exit when other static variables are not availables. With this change the destructors are called on lldb_private::Terminate() + Fix DebuggerRefCount handling in ScriptInterpreterPython Differential Revision: http://reviews.llvm.org/D7590 llvm-svn: 228944
* Create new platform: remote-androidTamas Berghammer2015-02-129-36/+561
| | | | | | | | | | * Create new platform plugin for lldb * Create HostInfo class for android * Create ProcessLauncher for android Differential Revision: http://reviews.llvm.org/D7584 llvm-svn: 228943
* Separate monolithic GDBRemoteCommunicationServer class into 4 partTamas Berghammer2015-02-111-2/+2
| | | | | | | | | | | GDBRemoteCommunicationServer: Basic packet handling, handler registration LLDBCommonPacketHandler: Common packet handling for lldb-platform and lldb-gdbserver LLDBPlatformPacketHandler: lldb-platform specific packet handling LLGSPacketHandler: lldb-gdbserver specific packet handling Differential Revision: http://reviews.llvm.org/D7538 llvm-svn: 228823
* Extend SBPlatform with capability to launch/terminate a process remotely. ↵Oleksiy Vyalov2015-02-042-7/+34
| | | | | | | | Integrate this change into test framework in order to spawn processes on a remote target. http://reviews.llvm.org/D7263 llvm-svn: 228230
* Test commit. No changes.Pavel Labath2015-02-031-1/+1
| | | | llvm-svn: 227960
* Disabled local-llgs hijacking of state on startup; passed along signo to ↵Chaoren Lin2015-02-031-0/+2
| | | | | | | | | | | killed process. It looks like Shawn's fix addresses what the initial hijacking was trying to accomplish per conversations with Greg and Jim. The hijacking was causing several tests to hang (#61, #62, #63, #64, #67, possibly more). These tests now just fail rather than hang with this modification. llvm-svn: 227914
* Make "process attach" command to support attaching to remote process in case ↵Oleksiy Vyalov2015-02-032-4/+14
| | | | | | | | if selected platform allows this. http://reviews.llvm.org/D7358 llvm-svn: 227899
* Lock the Platform mutex in PlatformDarwin::GetDeveloperDirectory().Greg Clayton2015-02-021-0/+1
| | | | | | Partial fix for: <rdar://problem/19575304> llvm-svn: 227863
* Make one mutex for the lldb_private::Platform class that can be used to ↵Greg Clayton2015-02-021-1/+6
| | | | | | | | protect with modifying member variables. This mutex is designed to be used for simple modifications, so the lock should be taken, modify the member variable and released. We need to make sure this isn't used with any code that cause code to rely or reenter on another thread. Partial fix for: <rdar://problem/19575304> llvm-svn: 227855
* Small tweak to the name of kernel binaries that we lookJason Molenda2015-01-301-1/+1
| | | | | | | for; match files starting with "mach", not "mach." so the old common name mach_kernel will still be matched. llvm-svn: 227552
* When starting a kernel debug session (PlatformDarwinKernel), scanJason Molenda2015-01-292-23/+207
| | | | | | | | | | | | for executable binaries on the local filesystem so the user doesn't need to provide the path to the correct binary manually. Also have lldb search for kexts/the kernel in the current working directory in addition to all the usual places. <rdar://problem/18126501> llvm-svn: 227419
* Fixed compiler warnings for functions that weren't marked virtual and the ↵Greg Clayton2015-01-281-14/+15
| | | | | | functions didn't have "override" on them. llvm-svn: 227366
* Renamed UpdateSDKDirectoryInfosInNeeded->IfNeededVince Harron2015-01-232-8/+7
| | | | | | Also removed extra call to UpdateSDKDirectoryInfosIfNeeded llvm-svn: 226957
* Fix the -*-version-min option to not try and use the current OS version for ↵Greg Clayton2015-01-225-27/+66
| | | | | | iOS and the simulator since llvm/clang will assert and kill LLDB. llvm-svn: 226846
* This patch gets remote-linux platform able to run processesVince Harron2015-01-213-83/+94
| | | | | | | | | | | | | | | | Make sure the selected platform is always used Make sure that the host uses the connect://hostname to connect to both the lldb-platform and the lldb-gdbserver rather than what the platform reports as the hostname of the lldb-gdbserver Make sure that lldb-platform uses the IP address on it's connection back to the host instead of the hostname that the host sends to it when launching lldb-gdbserver with the remote host information Tested on OSX and Linux llvm-svn: 226712
* [LLDB][MIPS] Adding SoftwareBreakpointTrapOpcode and RelocationJumpSlotType ↵Mohit K. Bhakkad2015-01-081-0/+7
| | | | | | | | | | | | | | | | for MIPS Patch by Bhushan Attarde Reviewers: clayborg Reviewed By: clayborg Subscribers: petarj, dsanders, mohit.bhakkad, lldb-commits Differential Revision: http://reviews.llvm.org/D6861 llvm-svn: 225436
* Display local kernel version only when non-remote in PlatformLinux.Stephane Sezer2014-12-181-6/+12
| | | | | | | | | | | | | | | | | | | | Summary: This is part of the Linux remote platform work. Displaying the local kernel information when remote debugging doesn't make sense, so we should verify if we are in host mode before doing so. Test Plan: Connect to a remote linux platform mode daemon with `platform select remote-linux` followed by `platform connect ...`, and look at the output of `platform status`. Reviewers: tfiala, clayborg, vharron, compnerd Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D5928 llvm-svn: 224540
* Implement remote process listing in Linux platform.Stephane Sezer2014-12-092-0/+23
| | | | | | | | | | | | | | Summary: Test Plan: Connect to a remote implementing the platform protocol (ds2 in this case), run `platform process list` and see processes being displayed. Reviewers: vharron, tfiala, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D6571 llvm-svn: 223752
* Add the ability to set breakpoints with conditions, commands, etc,Jim Ingham2014-12-062-2/+2
| | | | | | | | | | | | | | in the "dummy-target". The dummy target breakpoints prime all future targets. Breakpoints set before any target is created (e.g. breakpoints in ~/.lldbinit) automatically get set in the dummy target. You can also list, add & delete breakpoints from the dummy target using the "-D" flag, which is supported by most of the breakpoint commands. This removes a long-standing wart in lldb... <rdar://problem/10881487> llvm-svn: 223565
* Fix a bunch of [-Werror,-Winconsistent-missing-override] warnings.Eric Christopher2014-12-053-44/+44
| | | | llvm-svn: 223501
* Fix a few default label in switch which covers allEric Christopher2014-12-051-6/+0
| | | | | | | enumeration values [-Werror,-Wcovered-switch-default] warnings. llvm-svn: 223499
* Added support to Platform to indicate (1) whether theSean Callanan2014-12-056-1/+348
| | | | | | | | current platform supports Clang modules, and (2) what options to pass to Clang so it can load those Clang modules. llvm-svn: 223431
* Fix override/virtual warnings.Eric Christopher2014-11-171-22/+23
| | | | llvm-svn: 222186
* Fix broken Linux build after signature change of ResolveExecutable.Oleksiy Vyalov2014-11-171-2/+2
| | | | llvm-svn: 222182
* Fixed more fallout from running the test suite remotely on iOS devices.Greg Clayton2014-11-1718-252/+260
| | | | | | | | | | | | | | | | Fixed include: - Change Platform::ResolveExecutable(...) to take a ModuleSpec instead of a FileSpec + ArchSpec to help resolve executables correctly when we have just a path + UUID (no arch). - Add the ability to set the listener in SBLaunchInfo and SBAttachInfo in case you don't want to use the debugger as the default listener. - Modified all places that use the SBLaunchInfo/SBAttachInfo and the internal ProcessLaunchInfo/ProcessAttachInfo to not take a listener as a parameter since it is in the launch/attach info now - Load a module's sections by default when removing a module from a target. Since we create JIT modules for expressions and helper functions, we could end up with stale data in the section load list if a module was removed from the target as the section load list would still have entries for the unloaded module. Target now has the following functions to help unload all sections a single or multiple modules: size_t Target::UnloadModuleSections (const ModuleList &module_list); size_t Target::UnloadModuleSections (const lldb::ModuleSP &module_sp); llvm-svn: 222167
* Remove extra "/" character from paths resolved in iOS SDKs and also be sure ↵Greg Clayton2014-11-131-3/+5
| | | | | | to update the SDK directory infos if needed before we start using m_sdk_directory_infos. llvm-svn: 221907
* A pretty big overhaul of the TryFallbackUnwindPlan method inJason Molenda2014-11-131-0/+11
| | | | | | | | | | | | RegisterContextLLDB. I have core files of half a dozen tricky unwind situations on x86/arm and they're all working pretty much correctly at this point, but we'll need to keep an eye out for unwinder regressions for a little while; it's tricky to get these heuristics completely correct in all unwind situations. <rdar://problem/18937193> llvm-svn: 221866
OpenPOWER on IntegriCloud