0e191607adcb0ea8ebd06c278be648a7f5c0097f |
|
10-May-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13854277> <rdar://problem/13594769> Main changes in this patch include: - cleanup plug-in interface and use ConstStrings for plug-in names - Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp - Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging The plug-in interface changes: Modified the lldb_private::PluginInterface class that all plug-ins inherit from: Changed: virtual const char * GetPluginName() = 0; To: virtual ConstString GetPluginName() = 0; Removed: virtual const char * GetShortPluginName() = 0; - Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names. - Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
42b336cd509cad89be08f78775d3b1c8c7656a1b |
|
04-May-2013 |
Jason Molenda <jmolenda@apple.com> |
Remove the UUID::GetAsCString() method which required a buffer to save the UUID string in; added UUID::GetAsString() which returns the uuid string in a std::string. Updated callers to use the new method. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
2d46e9b14a6d8aea8624b9cdb81d4a3d6a769cce |
|
03-May-2013 |
Jason Molenda <jmolenda@apple.com> |
If the Target's current architecture is incompatible with the kernel DynamicLoaderDarwinKernel finds in memory, have DynamicLoaderDarwinKernel re-set the Target's arch based on the kernel's cpu type / cpu subtype. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
b5229b189ca5a589b4d634271cfc0f83610b8030 |
|
01-May-2013 |
Jason Molenda <jmolenda@apple.com> |
Make the warning message about not finding the kernel binary clearer about which kernel binary lldb is referring to. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
97a19b21dacd9063bb5475812df7781777262198 |
|
29-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Cleanup logging to use the new "std::string FileSpec::GetPath()" function. Also added a similar function for modules: std::string Module::GetSpecificationDescription () const; This returns the module as "/usr/lib/libfoo.dylib" for normal files (calls "std::string FileSpec::GetPath()" on m_file) but it also might include the object name in case the module is for a .o file in a BSD archive ("/usr/lib/libfoo.a(bar.o)"). Cleaned up necessary logging code to use it. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
1377cdcb699024daa45ca40bcb65daaf963e16c5 |
|
19-Apr-2013 |
Jason Molenda <jmolenda@apple.com> |
Remove an unneeded local var, a missing return statement in kernel search code, thanks to Greg Clayton for finding these. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
102b2c2681c9a830afe25bfea35557421905e42c |
|
19-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
32949387a93392818418fab844c274877ac68c0f |
|
05-Apr-2013 |
Jason Molenda <jmolenda@apple.com> |
Change CommandObjectPlatform commands to get the current platform from the current Target, if there is one, else back off to getting the currently selected platform from the Debugger (as it ws doing previously.) Remove code from DynamicLoaderDarwinKernel that was setting the platform in both the Target and in the Debugger. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
e369aedc1ef2fc983ee97ad75a2537b9a8f820bd |
|
05-Apr-2013 |
Jason Molenda <jmolenda@apple.com> |
Add a new PlatformDarwinKernel for kernel debugging. This Platform plugin will index the kext bundles on the local filesystem when created. During a kernel debug session, when the DynamicLoader plugin needs to locate a kext by name like "com.apple.com.apple.filesystems.autofs", the Platform can quickly look for a UUID match in those kernel debug kit directories it previously indexed. I'm still working on profiling the performance impact of the inital kext bundle scan; there will likely need to be a switch to enable or disable this plugin's scan. This only affects Mac kernel debugging and the code is only built on Apple systems because of some use of low-level CoreFoundation to parse plists. <rdar://problem/13503583> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
952e9dc874944fcdbbb224f3ec4fc2c859376f64 |
|
28-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13521159> LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down. All logging channels now make one and only one instance that is kept in a global pointer which is never freed. This guarantees that logging can correctly continue as the process tears itself down. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
e5bc8c178390c217a91509e9f1db48cabbd11e33 |
|
12-Mar-2013 |
Matt Kopec <Matt.Kopec@intel.com> |
Misc. clang build warning fixes. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176879 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
cd0dd8fa16ba32e4bed9326757b3978ba1155179 |
|
02-Mar-2013 |
Jason Molenda <jmolenda@apple.com> |
ProcessMachCore had (until 2013-01-29) some simple checks to find a kernel in a core file if it didn't start at the beginning of a memory segment. I added more sophisticated kernel location code to DynamicLoaderDarwinKernel and removed the simple one in ProcessMachCore. Unfortunately the kernel DynamicLoader doesn't get a chance to search around in memory unless there's a hint that this might be a kernel debug session. It was easy ot make the kernel location code static in DynamicLoaderDarwinKernel and call it from ProcessMachCore on the start of the session, so that's what I did. <rdar://problem/13326647> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
88f7e75c5d40b109e33fc0df08fa51a48d70e450 |
|
01-Mar-2013 |
Jason Molenda <jmolenda@apple.com> |
Report the kernel slide when attaching to a darwin kernel debug session. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
6699c6eed148916de6a101ef1da8a859628fda63 |
|
27-Feb-2013 |
Jason Molenda <jmolenda@apple.com> |
When starting a kernel debug session, if the user specified an executable binary to lldb already check that the UUID of that binary and the UUID of the kernel binary in memory match. Warn if they don't. <rdar://problem/13184784> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
7cb80c9728fa91a5b827ccb74592bf57ac6d4710 |
|
26-Feb-2013 |
Jason Molenda <jmolenda@apple.com> |
If the user has disabled kext loading with the plugin.dynamic-loader.darwin-kernel.load-kexts setting, don't print any messages about loading the kexts (which isn't being done) and don't read the Mach-O headers out of memory (which can be slow and they're not being used for anything at this point). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
d79d625a522afdbdd127924a10d3db7e71395cac |
|
19-Feb-2013 |
Jason Molenda <jmolenda@apple.com> |
Fix a case where a kext module was being added to the Target twice. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
2c529b11da5cf25be2859851fa231f6cd8788f66 |
|
19-Feb-2013 |
Jason Molenda <jmolenda@apple.com> |
Change the order that the DarwinKernel DynamicLoader plugin uses to search for kexts on the local system -- the ModuleList FindModule() method is the best first attempt, only call Symbols::DownloadObjectAndSymbolFile() if that has failed and this is the kernel binary which really needs to have its symbols located. <rdar://problem/13241893> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
fcd9bf14828ec4e4d2a69671eff05f0b824e46b3 |
|
19-Feb-2013 |
Jason Molenda <jmolenda@apple.com> |
Experiment with printing a warning message when lldb is unable to find a binary on the debugger-host during a kernel debug session for a kernel extension (kext). This may prove to be too verbose in typical usage, particularly if there are many third-party kexts. We'll try this and see how it works. <rdar://problem/13080833> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
0d31111076a6048a83093ee98b219bdba05c0f16 |
|
19-Feb-2013 |
Jason Molenda <jmolenda@apple.com> |
Always print the kernel UUID and load address if we are working with a kernel binary - even if we can't find the symbol-rich binary or dSYM on the debugger-system. Print a warning if the symbol-rich binary cannot be located. This more closely emulates the gdb behavior when a kernel debug session failed to locate a kernel binary. <rdar://problem/13016095> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175491 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
32a45285f51d27b91f17ea15124ef44a2efd2511 |
|
19-Feb-2013 |
Jason Molenda <jmolenda@apple.com> |
Change the DarwinKernel DyanmicLoader to maintain a persist list of kernel extensions (kexts) that have been loaded into the kernel. Now when we hit the "kexts have changed" breakpoint we can avoid adding kexts multiple times, and can properly detect kext unloads and remove them from the Target's list of modules. <rdar://problem/13107639> <rdar://problem/13191016> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
2ddb2b8aed6d43665c6955255f6a077574a08412 |
|
01-Feb-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13092722> Fix in loading mach files from memory when using DynamicLoaderMacOSXDYLD. Removed the uuid mismatch warning that could be spit out and any time during debugging and removed the test case that was looking for that. Currently the "add-dsym" or "target symbols add" command will report an error when the UUID's don't match. Be more careful when checking and resolving section + offset addresses to make sure none of the base addresses are invalid. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
5ebd91b8160644b371eadaff41f0a30464f3b9ec |
|
30-Jan-2013 |
Jason Molenda <jmolenda@apple.com> |
Verified that the plugin.dynamic-loader.darwin-kernel.scan-type setting is working correctly now; remove the #if 0's around its use. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
94c0f4c378f39b540ffb46992c5741a4bc59e2e2 |
|
30-Jan-2013 |
Jason Molenda <jmolenda@apple.com> |
Fix one obvious thinko with the plugin.dynamic-loader.darwin-kernel.scan-type setting handling that was probably the source of the settings problem. Need to verify that it's working correctly tomorrow though. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
9338dd571e7781a89724d79e1f54385c282d0316 |
|
30-Jan-2013 |
Jason Molenda <jmolenda@apple.com> |
<rdar://problem/12491235> Enhance lldb so it can search for a kernel in memory when attaching to a remote system. Remove some of the code that was doing this from ProcessMachCore and ProcessGDBRemote and put it in DynamicLoaderDarwinKernel. I've added a new setting, plugin.dynamic-loader.darwin-kernel.scan-type which can be set to none - for environments where reading random memory can cause a device crash basic - look at one fixed location in memory for a kernel load address, plus the contents of that address fast-scan - the default, tries "basic" and then looks for the kernel's mach header near the current pc value when lldb connects exhaustive-scan - on 32-bit targets, step through the entire range where the kernel can be loaded, looking for the kernel binary I don't have the setting set up correctly right now, I'm getting back unexpected values from the Property system, but I'll figure that out tomorrow and fix. Besides that, all of the different communication methods / types of kernels appear to be working correctly with these changes. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
36da2aa6dc5ad9994b638ed09eb81c44cc05540b |
|
25-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13069948> Major fixed to allow reading files that are over 4GB. The main problems were that the DataExtractor was using 32 bit offsets as a data cursor, and since we mmap all of our object files we could run into cases where if we had a very large core file that was over 4GB, we were running into the 4GB boundary. So I defined a new "lldb::offset_t" which should be used for all file offsets. After making this change, I enabled warnings for data loss and for enexpected implicit conversions temporarily and found a ton of things that I fixed. Any functions that take an index internally, should use "size_t" for any indexes and also should return "size_t" for any sizes of collections. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
a4d860f139342acaf6a1c7a3f7ab5683b023c3ba |
|
11-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12842032> Don't load __LINKEDIT segments when dynamically loading kexts. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
d35b7b3bfd21f4fd6b048693563eef1b772ae197 |
|
07-Dec-2012 |
Daniel Malea <daniel.malea@intel.com> |
More Linux warnings fixes (remove default labels as needed): - as per http://llvm.org/docs/CodingStandards.html#don-t-use-default-labels-in-fully-covered-switches-over-enumerations Patch by Matt Kopec! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
d891f9b872103235cfd2ed452c6f14a4394d9b3a |
|
05-Dec-2012 |
Daniel Malea <daniel.malea@intel.com> |
Fix Linux build warnings due to redefinition of macros: - add new header lldb-python.h to be included before other system headers - short term fix (eventually python dependencies must be cleaned up) Patch by Matt Kopec! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
5fdfc6db0f03ed4dc45b54f1d65c8e7db4135c18 |
|
01-Dec-2012 |
Jason Molenda <jmolenda@apple.com> |
Don't re-add kexts and the kernel each time we get a notification that kexts were newly added. The Darwin userland dynamic loader provides lldb with a list of newly-added or newly-removed binaries but in the kernel case we only know that something has changed. DynamicLoaderDarwinKernel really needs to maintain its own persistent list of kexts that it has been notified about (most importantly, it will not detect kext unlods) but for now we'll at least avoid re-adding an already present kext. <rdar://problem/12658487>, <rdar://problem/12658487> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
5f35a4be95aed0e5b2cb36f7d785bcbfc67284ae |
|
29-Nov-2012 |
Daniel Malea <daniel.malea@intel.com> |
Resolve printf formatting warnings on Linux: - use macros from inttypes.h for format strings instead of OS-specific types Patch from Matt Kopec! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@168945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
146d9522c95c0c8c5409539813b55e08b99196ee |
|
08-Nov-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12586350> This commit does three things: (a) introduces a new notification model for adding/removing/changing modules to a ModuleList, and applies it to the Target's ModuleList, so that we make sure to always trigger the right set of actions whenever modules come and go in a target. Certain spots in the code still need to "manually" notify the Target for several reasons, so this is a work in progress (b) adds a new capability to the Platforms: locating a scripting resources associated to a module. A scripting resource is a Python file that can load commands, formatters, ... and any other action of interest corresponding to the loading of a module. At the moment, this is only implemented on Mac OS X and only for files inside .dSYM bundles - the next step is going to be letting the frameworks themselves hold their scripting resources. Implementors of platforms for other systems are free to implement "the right thing" for their own worlds (c) hooking up items (a) and (b) so that targets auto-load the scripting resources as the corresponding modules get loaded in a target. This has a few caveats at the moment: - the user needs to manually add the .py file to the dSYM (soon, it will also work in the framework itself) - if two modules with the same name show up during the lifetime of an LLDB session, the second one won't be able to load its scripting resource, but will otherwise work just fine git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
b6ea174785a93f6dc227d886eba3af72faa2cf98 |
|
08-Nov-2012 |
Jason Molenda <jmolenda@apple.com> |
Fix a crasher in DynamicLoaderDarwinKernel::OSKextLoadedKextSummary::LoadImageUsingMemoryModule where it assumed that a kernel had been found in memory, when that may not be the case when we're attaching to a device early in the boot process. <rdar://problem/12638140> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
2f27af8e7b2515b05e28653177da01c9a3fe0c52 |
|
19-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
Change the name of the variable used to detect if we are loading kexts to "load-kexts" instead of "disable-kext-loading" since the value is a boolean. This was requested by the person who requested the feature. It now defaults to true: (lldb) settings show plugin.dynamic-loader.darwin-kernel.load-kexts plugin.dynamic-loader.darwin-kernel.load-kexts (boolean) = true git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
2acbc2a80c0116454426db2d8b55bc23e6cbb0c1 |
|
19-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
Rename "macosx-kernel" to "darwin-kernel" to match the filenames before anyone starts using the settings for this plug-in. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
87e9d32a982a0fb76b8657a897ad5781f9a5d25e |
|
19-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
Added the infrastructure necessary for plug-ins to be able to add their own settings instead of having settings added to existing ones. In particular "target.disable-kext-loading" was added to "target" where it should actually be specific to the the dynamic loader plugin. Now the plug-in manager has the ability to create settings at the root level starting with "plugin". Each plug-in type can add new sub dictionaries, and then each plug-in can register a setting dictionary under its own short name. For example the DynamicLoaderDarwinKernel plug-in now registers a setting dictionary at: plugin dynamic-loader macosx-kernel (bool) disable-kext-loading To settings can be set using: (lldb) settings set plugin.dynamic-loader.macosx-kernel.disable-kext-loading true I currently only hooked up the DynamicLoader plug-ins, but the code is very easy to duplicate when and if we need settings for other plug-ins. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
127291c8222625f1c8e31dfbb41c95103251ff56 |
|
19-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Add a new target setting to disable automatic loading of kext images in a kernel debug session: settings set target.disable-kext-loading true <rdar://problem/12490623> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
6f01c93497df194b6f2194630a81e87d806ce0e0 |
|
12-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Bunch of cleanups for warnings found by the llvm static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
d6d45ceeae51b6dbb9221a3cf82441afa212a7dc |
|
09-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Add a parameter to Symbols::DownloadObjectAndSymbolFile() to control whether we try to call an external program to load symbols unconditionally, or if we check the user's preferences before calling it. ProcessMachCore now sets CanJIT to false - we can't execute code in a core file. DynamicLoaderDarwinKernel::OSKextLoadedKextSummary::LoadImageUsingMemoryModule changed to load the kernel from an on-disk file if at all possible. Don't load the kext binaries out of memory from the remote systems - their linkedit doesn't seem to be in a good state and we'll error out down in SymbolVendorMacOSX if we try to use the in-memory images. Call Symbols::DownloadObjectAndSymbolFile to get the kext/kernel binary -- the external program may be able to give us a file path on the local filesystem instead of reading the binary / dSYM over a network drive every time. Fall back to calling Target::GetSharedModule() like before if DownloadObjectAndSymbolFile fails. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
d6b8122cee3dd02255bf50a7d019f17dfeba463a |
|
06-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
In DynamicLoaderDarwinKernel::OSKextLoadedKextSummary::LoadImageUsingMemoryModule(), if we have a kernel binary, set the target's architecture to match. Include the target's architecture in the ModuleSpec when we're searching for the kext binaries on the local system -- otherwise we won't get a specific slice of a fat file picked out for us and we won't use the returned Module correctly. Remove the redundant attempt to find a file on the local filesystem from this method. In ProcessGDBRemote::CheckForKernel(), if we have a kernel binary in memory, mark the canJIT as false. There is no jitting code in kernel debug sessions. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
4a55d75b00a2956f5a26f15c03137c090d142a38 |
|
04-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Patch submitted by Dan Malea -- I introduced a dependency between ProcessGDBRemote and DynamicLoaderDarwinKernel and a patch was needed to get this building on Linux. Thanks! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
b46937c86ca4551b2fc9813d848b1a0a2bf2e636 |
|
03-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
The kernel loading code is now isolated in the DynamicLoaderDarwinKernel; remove the duplicates of this code in ProcessGDBRemote and ProcessKDP. These two Process plugins will hardcode their DynamicLoader name to be the DynamicLoaderDarwinKernel so the correct DynamicLoader is picked, and return the kernel load address as the ImageInfosAddress. <rdar://problem/12417038> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
63e5cf65c43615da20b272fde2a21ffd4fa6eb29 |
|
03-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Change DynamicLoaderDarwinKernel::OSKextLoadedKextSummary to use the Symbols::LocateExecutableObjectFile method to locate kexts and kernels instead of copying them out of the memory of the remote system. This is the fix for <rdar://problem/12416384>. Fix a variable shadowing problem in Symbols::LocateMacOSXFilesUsingDebugSymbols which caused the symbol rich executable binaries to not be found even if they were listed in the dSYM Info.plist. Change Symbols::DownloadObjectAndSymbolFile to ignore dsymForUUID's negative cache - this is typically being called by the user and we should try even if there's a incorrect entry in the negative cache. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
4952db8c76f619e3d8a0cf13456097128009d67b |
|
02-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Handle KASLR kernel loading for kernel corefiles. Reduce the amount of output that DynamicLoaderDarwinKernel prints for each kext it loads. <rdar://problem/7714201> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
fac2e62f08719ba800a440b7ad0d5a55a26dc620 |
|
29-Sep-2012 |
Jason Molenda <jmolenda@apple.com> |
Add support for debugging KASLR kernels via kdp (the kernel being loaded at a random offset). To get the kernel's UUID and load address I need to send a kdp packet so I had to implement the kernel relocation (and attempt to find the kernel if none was provided to lldb already) in ProcessKDP -- but this code really properly belongs in DynamicLoaderDarwinKernel. I also had to add an optional Stream to ConnectRemote so ProcessKDP::DoConnectRemote can print feedback about the remote kernel's UUID, load address, and notify the user if we auto-loaded the kernel via the UUID. <rdar://problem/7714201> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
49ce8969d3154e1560106cfe530444c09410f217 |
|
29-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11757916> Make breakpoint setting by file and line much more efficient by only looking for inlined breakpoint locations if we are setting a breakpoint in anything but a source implementation file. Implementing this complex for a many reasons. Turns out that parsing compile units lazily had some issues with respect to how we need to do things with DWARF in .o files. So the fixes in the checkin for this makes these changes: - Add a new setting called "target.inline-breakpoint-strategy" which can be set to "never", "always", or "headers". "never" will never try and set any inlined breakpoints (fastest). "always" always looks for inlined breakpoint locations (slowest, but most accurate). "headers", which is the default setting, will only look for inlined breakpoint locations if the breakpoint is set in what are consudered to be header files, which is realy defined as "not in an implementation source file". - modify the breakpoint setting by file and line to check the current "target.inline-breakpoint-strategy" setting and act accordingly - Modify compile units to be able to get their language and other info lazily. This allows us to create compile units from the debug map and not have to fill all of the details in, and then lazily discover this information as we go on debuggging. This is needed to avoid parsing all .o files when setting breakpoints in implementation only files (no inlines). Otherwise we would need to parse the .o file, the object file (mach-o in our case) and the symbol file (DWARF in the object file) just to see what the compile unit was. - modify the "SymbolFileDWARFDebugMap" to subclass lldb_private::Module so that the virtual "GetObjectFile()" and "GetSymbolVendor()" functions can be intercepted when the .o file contenst are later lazilly needed. Prior to this fix, when we first instantiated the "SymbolFileDWARFDebugMap" class, we would also make modules, object files and symbol files for every .o file in the debug map because we needed to fix up the sections in the .o files with information that is in the executable debug map. Now we lazily do this in the DebugMapModule::GetObjectFile() Cleaned up header includes a bit as well. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
4a379b1194f3e6b308cd6e80b45d6ca5dd0aafd7 |
|
17-Jul-2012 |
Greg Clayton <gclayton@apple.com> |
Ran the static analyzer on the codebase and found a few things. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
545762f7780bece4e9255e052c0a50a1ea66ce57 |
|
07-Jul-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11357711> Fixed a crasher where the section load list was not thread safe. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
2cf5ccbbbe3343a6c973d0d65ad5de178a414e30 |
|
22-May-2012 |
Jim Ingham <jingham@apple.com> |
Also push file & line breakpoints past the prologue. Also added a "-K" argument to the relevant "break set" commands to set this per breakpoint. Also, some CreateBreakpoint API's in the lldb_private namespace had "internal" first and "skip_prologue" second. "internal should always be last. Fixed that. rdar://problem/11484729 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
b170aee2daacc83e3d71c3e3acc9d56c89893a7b |
|
08-May-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11358639> Switch over to the "*-apple-macosx" for desktop and "*-apple-ios" for iOS triples. Also make the selection process for auto selecting platforms based off of an arch much better. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
aa2063089f2397bd21cff2dab2e7c316ae5ff12c |
|
21-Mar-2012 |
Greg Clayton <gclayton@apple.com> |
Fixed the ability to load a module from a path by using just a UUID. After the migration to ModuleSpec objects this broke and is now fixed. Also fixed a case in the darwin kernel dynamic loader where we just need to trust the load address of the kernel if we can't read it from memory. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
0c31d3d3a4a1d00d53346d8a23b0519f47e55d1f |
|
07-Mar-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10997402> This fix really needed to happen as a previous fix I had submitted for calculating symbol sizes made many symbols appear to have zero size since the function that was calculating the symbol size was calling another function that would cause the calculation to happen again. This resulted in some symbols having zero size when they shouldn't. This could then cause infinite stack traces and many other side affects. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
444fe998bf707bd076a70c3a779db8575533695e |
|
26-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Made a ModuleSpec class in Module.h which can specify a module using one or more of the local path, platform path, associated symbol file, UUID, arch, object name and object offset. This allows many of the calls that were GetSharedModule to reduce the number of arguments that were used in a call to these functions. It also allows a module to be created with a ModuleSpec which allows many things to be specified prior to any accessors being called on the Module class itself. I was running into problems when adding support for "target symbol add" where you can specify a stand alone debug info file after debugging has started where I needed to specify the associated symbol file path and if I waited until after construction, the wrong symbol file had already been located. By using the ModuleSpec it allows us to construct a module with as little or as much information as needed and not have to change the parameter list. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
95d7433db41808b55e10c11c1ffe92442298ebf0 |
|
14-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Made loading sections in the DynamicLoaderDarwinKernel more robust as it seems that sections in the memory module might be quite different from the sections in the file module. Now we find all segments in the on disk file and find that segment by name in the memory module and it is ok if any sections from the file are missing in the memory image. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
9ce953807eb814a93b449dc243de4f7bf32c3115 |
|
14-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Full core file support has been added for mach-o core files. Tracking modules down when you have a UUID and a path has been improved. DynamicLoaderDarwinKernel no longer parses mach-o load commands and it now uses the memory based modules now that we can load modules from memory. Added a target setting named "target.exec-search-paths" which can be used to supply a list of directories to use when trying to look for executables. This allows one or more directories to be used when searching for modules that may not exist in the SDK/PDK. The target automatically adds the directory for the main executable to this list so this should help us in tracking down shared libraries and other binaries. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
ac725afac61b48d1dc0e38370d824fe45c52c3b7 |
|
10-Feb-2012 |
Sean Callanan <scallanan@apple.com> |
Improved detection of object file types, moving detection of kernels into the object file and adding a new category for raw binary images. Fixed all clients who previously searched for sections manually, making them use the object file's facilities instead. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
df6dc88322f103b263092d752db4490e628a1cbd |
|
05-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
Added code in the Host layer that can report system log messages so that we don't have "fprintf (stderr, ...)" calls sprinkled everywhere. Changed all needed locations over to using this. For non-darwin, we log to stderr only. On darwin, we log to stderr _and_ to ASL (Apple System Log facility). This will allow GUI apps to have a place for these error and warning messages to go, and also allows the command line apps to log directly to the terminal. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@147596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
97c8957257a3e0b3ce6f46f8e5a28c965e30f357 |
|
31-Oct-2011 |
Daniel Dunbar <daniel@zuster.org> |
warnings: Fix a bunch of -Wreorder problems. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
c324d5f6c70c129348a30c61549aea397202a842 |
|
24-Sep-2011 |
Jason Molenda <jmolenda@apple.com> |
Adjust kext load messages in DynamicLoaderDarwinKernel::ParseKextSummaries so we print result information if a kext fails to be located or loaded for some reason. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
d6d47976b71187907c1cdeea86fabf7d5534314f |
|
23-Sep-2011 |
Jim Ingham <jingham@apple.com> |
Added the ability to restrict breakpoints by function name, function regexp, selector etc to specific source files. Added SB API's to specify these source files & also more than one module. Added an "exact" option to CompileUnit's FindLineEntry API. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
03c8ee5aeafcd6c43f10002a4f8096af01780f86 |
|
21-Sep-2011 |
Jim Ingham <jingham@apple.com> |
Add a new breakpoint type "break by source regular expression". Fix the RegularExpression class so it has a real copy constructor. Fix the breakpoint setting with multiple shared libraries so it makes one breakpoint not one per shared library. Add SBFileSpecList, to be used to expose the above to the SB interface (not done yet.) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
6cf6c474742a23e7cb6b4f618bf1de711db90a85 |
|
21-Sep-2011 |
Sean Callanan <scallanan@apple.com> |
Fixed a problem where expressions would attempt to allocate memory in a process that did not support expression execution. Also improved detection of whether or not a process can execute expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
7e5fa7fc1f8efd24c078e063b2c4b5e13ba5be20 |
|
20-Sep-2011 |
Jason Molenda <jmolenda@apple.com> |
Update declarations for all functions/methods that accept printf-style stdarg formats to use __attribute__ format so the compiler can flag incorrect uses. Fix all incorrect uses. Most of these are innocuous, a few were resulting in crashes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
17f3d054e3d27fb7ce0892945c6ffb6c11516f88 |
|
23-Aug-2011 |
Greg Clayton <gclayton@apple.com> |
Finishing the renaming from "MacOSX-Kernel" to "Darwin-Kernel". git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|
49f7e5b6b9460686648d91dd51ea82f8aa1434fb |
|
23-Aug-2011 |
Greg Clayton <gclayton@apple.com> |
Renaming "MacOSX-Kernel" to "Darwin-Kernel". The file contents and project commit will come shortly after this commit. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138282 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
|