Skip to content
  1. Apr 12, 2013
    • Sean Callanan's avatar
      Implemented materialization and dematerialization · f8043fa5
      Sean Callanan authored
      for variables in the new Materializer.  This is
      much easier now that the ValueObject API is solid.
      
      I still have to implement reading bytes into a
      ValueObject, but committing what I have so far.
      
      This code is not yet used, so there will be fixes
      when I switch the expression parser over to use the
      new Materializer.
      
      llvm-svn: 179416
      f8043fa5
    • Greg Clayton's avatar
      <rdar://problem/13491977> · b3ae8761
      Greg Clayton authored
      Made some fixes to the OperatingSystemPython class:
      - If any thread dictionary contains any "core=N" key/value pairs then the threads obtained from the lldb_private::Process itself will be placed inside the ThreadMemory threads and will be used to get the information for a thread. 
      - Cleaned up all the places where a thread inside a thread was causing problems
      
      llvm-svn: 179405
      b3ae8761
    • Sean Callanan's avatar
      Replicated the materialization logic for persistent · 35005f76
      Sean Callanan authored
      variables in the Materializer.  We don't use this
      code yet, but will soon once the other materializers
      are online.
      
      llvm-svn: 179390
      35005f76
    • Jason Molenda's avatar
      Change the default for PlatformDarwinKernel to be enabled a la · af97e3fe
      Jason Molenda authored
      settings set platform.plugin.darwin-kernel.search-locally-for-kexts true
      
      llvm-svn: 179348
      af97e3fe
    • Jim Ingham's avatar
      Save away the locations at the site we hit and iterate over that collection. ... · dbd3c4da
      Jim Ingham authored
      Save away the locations at the site we hit and iterate over that collection.  Otherwise the action of one location
      could delete the other locations, and that would leave us iterating over a reduced size collection and crash.
      
      <rdar://problem/13592544>
      
      llvm-svn: 179332
      dbd3c4da
    • Enrico Granata's avatar
      <rdar://problem/13623698> · 4873e527
      Enrico Granata authored
      This patch fixes the issue that we were using the C stack as a measure of depth of ValueObject hierarchies, in the sense that we were assuming that recursive ValueObject operations would never be deeper than the stack allows.
      This assumption is easy to prove wrong, however.
      For instance, after ~10k runs through this loop:
      struct node
      {
      	int value;
      	node* child;
      	node (int x)
      	{
      		value = x;
      		child = nullptr;
      	}
      };
      
      int main ()
      {
      	node root(1);
      	node* ptr = &root;
      	int j = 2;
      	while (1)
      	{
      		ptr->child = new node(j++);
      		ptr = ptr->child;
      	}
      	return 0;
      }
      
      the deepmost child object will be deeper than the stack on most architectures, and we would be unable to display it
      
      This checkin fixes the issue by introducing a notion of root of ValueObject hierarchies.
      In a couple cases, we have to use an iterative algorithm instead of going to the root because we want to allow deeper customizations (e.g. formats, dynamic values).
      While the patch passes our test suite without regressions, it is a good idea to keep eyes open for any unexpected behavior (recursion can be subtle..)
      Also, I am hesitant to introduce a test case since failing at this will not just be marked as an "F", but most definitely crash LLDB.
      
      llvm-svn: 179330
      4873e527
    • Greg Clayton's avatar
      <rdar://problem/13370286> · 3342b9b2
      Greg Clayton authored
      Fixed a case there the OperatingSystemPython would try to access and play with SBValue objects when the process' public run lock was taken. Prior to this fix, all attempts to run any SBValue functions would fail if run from the private state thread (like updating the thread list). Now we have two run locks, one for public (all threads except the private state thread) and one for private.
      
      llvm-svn: 179329
      3342b9b2
    • Greg Clayton's avatar
  2. Apr 11, 2013
  3. Apr 10, 2013
  4. Apr 09, 2013
  5. Apr 08, 2013
  6. Apr 06, 2013
  7. Apr 05, 2013
    • Enrico Granata's avatar
      <rdar://problem/13563628> · f15ee4e8
      Enrico Granata authored
      Introducing a negative cache for ObjCLanguageRuntime::LookupInCompleteClassCache()
      This helps speed up the (common) case of us looking for classes that are hidden deep within Cocoa internals and repeatedly failing at finding type information for them.
      In order for this to work, we need to clean this cache whenever debug information is added. A new symbols loaded event is added that is triggered with add-dsym (before modules loaded would be triggered for both adding modules and adding symbols).
      Interested parties can register for this event. Internally, we make sure to clean the negative cache whenever symbols are added.
      Lastly, ClassDescriptor::IsTagged() has been refactored to GetTaggedPointerInfo() that also (optionally) returns info and value bits. In this way, data formatters can share tagged pointer code instead of duplicating the required arithmetic.
      
      llvm-svn: 178897
      f15ee4e8
    • Jim Ingham's avatar
      Fixme comment. · 0b55b438
      Jim Ingham authored
      llvm-svn: 178889
      0b55b438
    • Jason Molenda's avatar
      Add support for Platform plugins to have settings. · 9b837a1e
      Jason Molenda authored
      Add two initial settings for the PlatformDarwinKernel plugin,
      
      plugin.platform.darwin-kernel.search-locally-for-kexts [true|false]
      plugin.platform.darwin-kernel.kext-directories [directory list]
      
      llvm-svn: 178846
      9b837a1e
    • Jason Molenda's avatar
      Change CommandObjectPlatform commands to get the current platform · 8c1157cc
      Jason Molenda authored
      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.
      
      llvm-svn: 178836
      8c1157cc
    • Sean Callanan's avatar
      Factored out memory access into the target process · 5a1af4e6
      Sean Callanan authored
      from IRExecutionUnit into a superclass called
      IRMemoryMap.  IRMemoryMap handles all reading and
      writing, ensuring that areas are kept track of and
      memory is properly cached (and deleted).
      
      Also fixed several cases where we would simply leak
      binary data in the target process over time.  Now
      the expression objects explicitly own their
      IRExecutionUnit and delete it when they go away.  This
      is why I had to modify ClangUserExpression,
      ClangUtilityFunction, and ClangFunction.
      
      As a side effect of this, I am removing the JIT
      mutex for an IRMemoryMap.  If it turns out that we
      need this mutex, I'll add it in then, but right now
      it's just adding complexity.
      
      This is part of a more general project to make
      expressions fully reusable.  The next step is to
      make materialization and dematerialization use
      the IRMemoryMap API rather than writing and
      reading directly from the process's memory. 
      This will allow the IR interpreter to use the
      same data, but in the host's memory, without having
      to use a different set of pointers.
      
      llvm-svn: 178832
      5a1af4e6
    • Jason Molenda's avatar
      Add a new PlatformDarwinKernel for kernel debugging. This Platform · 1c627543
      Jason Molenda authored
      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> 
      
      llvm-svn: 178827
      1c627543
  8. Apr 04, 2013
Loading