Skip to content
  1. Nov 13, 2012
  2. Nov 08, 2012
    • Enrico Granata's avatar
      Minor cleanups to the new ModuleList notification APIs: passing in the... · efe637d4
      Enrico Granata authored
      Minor cleanups to the new ModuleList notification APIs: passing in the ModuleList as part of the callbacks, and not copying the notifier as part of copy constructing and assigning
      
      llvm-svn: 167592
      efe637d4
    • Enrico Granata's avatar
      <rdar://problem/12586350> · 1759848b
      Enrico Granata authored
      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
      
      llvm-svn: 167569
      1759848b
  3. Nov 04, 2012
    • Jason Molenda's avatar
      Add new ArchSpec methods, IsCompatibleMatch() and IsExactMatch(). · ba813dc0
      Jason Molenda authored
      The operator== method is a synonym for IsExactMatch().  
      
      The essential difference between these two is that IsCompatibleMatch()
      will say that armv7 and armv7s are compatible and return true.
      IsExactMatch() will say that armv7 and armv7s are not a match.
      
      An armv7s cpu can run either generic armv7 binaries or armv7s binaries
      (the latter being tuned for it).  When we're picking the slice of a 
      universal Mach-O file to load in an armv7s Target, we need to be able to
      first look for an exact cpu subtype match (armv7s == armv7s) and failing
      that, looking for a slice with a compatible architecture.
      
      Update ObjectContainerUniversalMachO::GetObjectFile to prefer an exact
      match of the cpu type, falling back to a compatible match if necessary.
      
      <rdar://problem/12593515>
      
      llvm-svn: 167365
      ba813dc0
  4. Nov 03, 2012
  5. Nov 02, 2012
    • Jason Molenda's avatar
      Change DataExtractor::Dump() to use a series of if..else if · cc57a383
      Jason Molenda authored
      statements instead of a switch for the size of the floating
      point types; some architectures sizeof double and sizeof long
      double are the same and that's invalid in a switch.
      
      Fix the LLDB_DISABLE_PYTHON ifdef block in FormatManager::LoadObjCFormatters
      so it builds on arm again.
      
      llvm-svn: 167263
      cc57a383
  6. Oct 31, 2012
  7. Oct 30, 2012
    • Greg Clayton's avatar
      Path from Ashok Thirumurthi: · 0665a0f0
      Greg Clayton authored
      The attached patch adds eValueTypeVector to lldb_private::Value.  The nested struct Vector is patterned after RegisterValue::m_data.buffer.  This change to Value allows ClangExpressionDeclMap::LookupDecl to return vector register data for consumption by InterpreterStackFrame::ResolveValue.  Note that ResolveValue was tweaked slightly to allocate enough memory for vector registers.
       
      An immediate result of this patch is that "expr $xmm0" generates the same results on Linux as on the Mac, which is good enough for TestRegisters.py.  In addition, the log of m_memory.PrintData(data_region.m_base, data_region.m_extent) shows that the register content has been resolved successfully.  On the other hand, the output is glaringly empty:
          runCmd: expr $xmm0
          output: (unsigned char __attribute__((ext_vector_type(16)))) $0 = {}
          Expecting sub string: vector_type
          Matched
      
      llvm-svn: 167033
      0665a0f0
  8. Oct 29, 2012
  9. Oct 27, 2012
  10. Oct 24, 2012
  11. Oct 23, 2012
    • Enrico Granata's avatar
      <rdar://problem/12523238> Commit 2 of 3 · 91fe0175
      Enrico Granata authored
      Adding the new has_children (or MightHaveChildren() in C++) for the existing synthetic children providers
      In a few cases, the new call is going to be much more efficient than the previous num_children > 0 check
      When the optimization was marginal (e.g. std::vector<>), the choice was to use num_children in order to keep
      implementation details in one function instead of duplicating code
      
      Next step is to provide test cases
      
      llvm-svn: 166506
      91fe0175
    • Enrico Granata's avatar
      <rdar://problem/12523238> Commit 1 of 3 · adaf282c
      Enrico Granata authored
      This commit enables the new HasChildren() feature for synthetic children providers
      Namely, it hooks up the required bits and pieces so that individual synthetic children providers can implement a new (optional) has_children call
      Default implementations have been provided where necessary so that any existing providers continue to work and behave correctly
      
      Next steps are:
      2) writing smart implementations of has_children for our providers whenever possible
      3) make a test case
      
      llvm-svn: 166495
      adaf282c
    • Enrico Granata's avatar
    • Greg Clayton's avatar
      <rdar://problem/12493007> · 4a792072
      Greg Clayton authored
      Added a new API call to help efficiently determine if a SBValue could have children:
      
           bool
           SBValue::MightHaveChildren ();
           
      This is inteneded to be used bui GUI programs that need to show if a SBValue needs a disclosure triangle when displaying a hierarchical type in a tree view without having to complete the type (by calling SBValue::GetNumChildren()) as completing the type is expensive.
      
      llvm-svn: 166460
      4a792072
  12. Oct 22, 2012
    • Enrico Granata's avatar
      <rdar://problem/12437442> · e3e91517
      Enrico Granata authored
      Given our implementation of ValueObjects we could have a scenario where a ValueObject has a dynamic type of Foo* at one point, and then its dynamic type changes to Bar*
      If Bar* has synthetic children enabled, by the time we figure that out, our public API is already vending SBValues wrapping a DynamicVO, instead of a SyntheticVO and there was
      no trivial way for us to change the SP inside an SBValue on the fly
      This checkin reimplements SBValue in terms of a wrapper, ValueImpl, that allows this substitutions on-the-fly by overriding GetSP() to do The Right Thing (TM)
      As an additional bonus, GetNonSyntheticValue() now works, and we can get rid of the ForceDisableSyntheticChildren idiom in ScriptInterpreterPython
      Lastly, this checkin makes sure the synthetic VOs get the correct m_value and m_data from their parents (prevented summaries from working in some cases)
      
      llvm-svn: 166426
      e3e91517
    • Greg Clayton's avatar
      <rdar://problem/12473003> · 7bc31332
      Greg Clayton authored
      Allow type searches to specify a type keyword when searching for type. Currently supported type keywords are: struct, class, union, enum, and typedef.
      
      So now you can search for types with a string like "struct foo".
      
      llvm-svn: 166420
      7bc31332
  13. Oct 20, 2012
  14. Oct 19, 2012
    • Greg Clayton's avatar
      Added the infrastructure necessary for plug-ins to be able to add their own... · e8cd0c98
      Greg Clayton authored
      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.
      
      llvm-svn: 166294
      e8cd0c98
  15. Oct 18, 2012
  16. Oct 17, 2012
  17. Oct 16, 2012
  18. Oct 11, 2012
    • Greg Clayton's avatar
      Fixed an indentation issue that only shows up when dumping .o files that use... · fc6d50e1
      Greg Clayton authored
      Fixed an indentation issue that only shows up when dumping .o files that use linked addresses (DWARF in .o files with debug map).
      
      llvm-svn: 165740
      fc6d50e1
    • Greg Clayton's avatar
      <rdar://problem/12331741> · f0246d15
      Greg Clayton authored
      Dynamic type code must be efficient and fast. Now it is.
      
      Added ObjC v1 support for getting the complete list of ISA values.
      
      The main flow of the AppleObjCRuntime subclasses is now they must override "virtual bool UpdateISAToDescriptorMap_Impl();". This function will update the complete list of ISA values and create ClassDescriptorSP objects for each one. Now we have the complete list of valid ISA values which we can use for verification when doing dynamic typing.
      
      Refactored a bunch of stuff so that the AppleObjCRuntime subclasses don't have to implement as many functions as they used to.
      
      llvm-svn: 165730
      f0246d15
  19. Oct 10, 2012
  20. Oct 09, 2012
  21. Oct 05, 2012
    • Jason Molenda's avatar
      Ran the sources through the compiler with -Wshadow warnings · ccd41e55
      Jason Molenda authored
      enabled after we'd found a few bugs that were caused by shadowed
      local variables; the most important issue this turned up was
      a common mistake of trying to obtain a mutex lock for the scope
      of a code block by doing
      
              Mutex::Locker(m_map_mutex);
      
      This doesn't assign the lock object to a local variable; it is
      a temporary that has its dtor called immediately.  Instead,
      
              Mutex::Locker locker(m_map_mutex);
      
      does what is intended.  For some reason -Wshadow happened to
      highlight these as shadowed variables.
      
      I also fixed a few obivous and easy shadowed variable issues
      across the code base but there are a couple dozen more that
      should be fixed when someone has a free minute.
      <rdar://problem/12437585>
      
      llvm-svn: 165269
      ccd41e55
  22. Oct 04, 2012
  23. Oct 03, 2012
  24. Oct 02, 2012
    • Greg Clayton's avatar
      <rdar://problem/11791234> · 548e9a3e
      Greg Clayton authored
      Shared libraries on MacOSX were not properly being removed from the shared
      module list when re-running a debug session due to an error in:
      
      Module::MatchesModuleSpec()
      
      llvm-svn: 164991
      548e9a3e
  25. Oct 01, 2012
  26. Sep 29, 2012
Loading