Skip to content
  1. Apr 12, 2013
    • Enrico Granata's avatar
      When specifying a relative path for the --framework option to dotest.py,... · ea6a58e2
      Enrico Granata authored
      When specifying a relative path for the --framework option to dotest.py, Python would end up being confused and unable to locate the embedded_interpreter module, causing every testcase that uses the Script Interpreter (e.g. functionalities/data-formatter/data-formatter-stl/libstdcpp) to fail without even trying
      This checkin fixes that problem by absolutizing the path before pushing it to the sys.path
      
      llvm-svn: 179341
      ea6a58e2
    • Enrico Granata's avatar
      <rdar://problem/13558484> · a0f9512c
      Enrico Granata authored
      This makes the dynamic values test case work for both libc++ and libstdcpp
      
      llvm-svn: 179333
      a0f9512c
    • 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
      Use std::unique_ptr instead of std::auto_ptr. · 269c6e35
      Greg Clayton authored
      llvm-svn: 179328
      269c6e35
    • Greg Clayton's avatar
      Fixed SBValueList to have a __str__ function like all other SB classes.... · dda8c7d5
      Greg Clayton authored
      Fixed SBValueList to have a __str__ function like all other SB classes. Previously this was done as __repr__.
      
      llvm-svn: 179327
      dda8c7d5
    • 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
      5d5c49ce
    • 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
    • Greg Clayton's avatar
      <rdar://problem/13477795> · a16cb16a
      Greg Clayton authored
      crashlog.py was always subtracting 1 to point to the previous instruction when symbolicating ARM backtraces. Many times the backtraces will include bit zero set to 1 to indicate thumb, so we need to make sure we mask the address and then backup one for non frame zero frames.
      
      llvm-svn: 178812
      a16cb16a
  8. Apr 04, 2013
Loading