Skip to content
  1. Nov 17, 2011
  2. Nov 16, 2011
    • Johnny Chen's avatar
      Docstring clarification. · 8eb14a95
      Johnny Chen authored
      llvm-svn: 144848
      8eb14a95
    • Johnny Chen's avatar
      Also dump the pid of the process launching through the lldbtest.system(*popenargs, **kwargs) API. · 0bd8c311
      Johnny Chen authored
      This helps track down possible zombie processes.
      
      llvm-svn: 144846
      0bd8c311
    • Sean Callanan's avatar
      Added support to the ASTImporter for passing · b0b87a56
      Sean Callanan authored
      completion information between different AST
      contexts.  It works like this:
      
      - If a Decl is imported from a context that
        has completion metadata, then that Decl
        is associated with the same completion
        information (possibly none) as the Decl
        it was imported from.
      
      - If a Decl is imported from a context that
        does not have completion metadata, then it
        is marked as completable by consulting the
        Decl and context it was imported from.
      
      llvm-svn: 144838
      b0b87a56
    • Sean Callanan's avatar
      Changed the ClangASTImporter to store metadata · f487bd87
      Sean Callanan authored
      for each AST context it knows about in a single
      object.  This makes it faster to look up the
      appropriate ASTImpoter for a given ASTContext
      pair and also makes it much easier to delete all
      metadata for a given AST context.
      
      In the future, this fix will allow the
      ClangASTImporter to propagate completion
      information between the metadata for different
      AST contexts as its minions move AST objects
      around.
      
      llvm-svn: 144835
      f487bd87
    • Sean Callanan's avatar
      Added a CopyType method to the ASTImporter that · 80f7867b
      Sean Callanan authored
      handles opaque QualTypes.
      
      llvm-svn: 144813
      80f7867b
    • Johnny Chen's avatar
      Remove invalid docstring (due to cut-and-paste error). · 5faba0cc
      Johnny Chen authored
      llvm-svn: 144807
      5faba0cc
    • Sean Callanan's avatar
      I made the ClangASTImporter owned by the target · 686b2319
      Sean Callanan authored
      rather than individually on behalf of each
      ASTContext.  This allows the ASTImporter to know
      about all containers of types, which will let it
      be smarter about forwarding information about
      type origins.  That means that the following
      sequence of steps will be possible (after a few
      more changes):
      
      - Import a type from a Module's ASTContext into
        an expression parser ASTContext, tracking its
        origin information -- this works now.
      
      - Because the result of the expression uses that
        type, import it from the expression parser
        ASTContext into the Target's scratch AST
        context, forwarding the origin information --
        this needs to be added.
      
      - For a later expression that uses the result,
        import the type from the Target's scratch AST
        context, still forwarding origin information
        -- this also needs to be added.
      
      - Use the intact origin information to complete
        the type as needed -- this works now if the
        origin information is present.
      
      To this end, I made the following changes:
      
      - ASTImporter top-level copy functions now
        require both a source and a destination AST
        context parameter.
      
      - The ASTImporter now knows how to purge
        records related to an ASTContext that is
        going away.
      
      - The Target now owns and creates the ASTImporter
        whenever the main executable changes or (in the
        absence of a main executable) on demand.
      
      llvm-svn: 144802
      686b2319
    • Greg Clayton's avatar
      Made the darwin host layer properly reap any child processes that it spawns. · e4e45924
      Greg Clayton authored
      After recent changes we weren't reaping child processes resulting in many
      zombie processes. 
      
      This was fixed by adding more settings to the ProcessLaunchOptions class
      that allow clients to specify a callback function and baton to be notified
      when their process dies. If one is not supplied a default callback will be
      used that "does the right thing". 
      
      Cleaned up a race condition in the ProcessGDBRemote class that would attempt
      to monitor when debugserver died. 
      
      Added an extra boolean to the process monitor callbacks that indicate if a
      process exited or not. If your process exited with a zero exit status and no
      signal, both items could be zero.
      
      Modified the process monitor functions to not require a callback function
      in order to reap the child process.
      
      llvm-svn: 144780
      e4e45924
    • Sean Callanan's avatar
      Fixed a problem where the target didn't use a · 6d6acc89
      Sean Callanan authored
      NULL-terminated C string to store the contents
      of the expression prefix file.  This meant that
      expressions, when printing the contents of the
      prefix into the expression's text, would
      invariably put in bad data after the end of the
      expression.
      
      Now, instead, we store the prefix contents in a
      std::string, which handles null-termination
      correctly.
      
      llvm-svn: 144760
      6d6acc89
    • Sean Callanan's avatar
      Fixed a crash when we merrily went on to try to log · ed8d58fc
      Sean Callanan authored
      information about a nonexistent function declaration.
      
      llvm-svn: 144744
      ed8d58fc
    • Sean Callanan's avatar
      Two fixes for Objetive-C methods that return struct · a6cbf06d
      Sean Callanan authored
      types.  First, I added handling for the memset intrinsic
      in the IR, which is used to zero out the returned struct.
      Second, I fixed the object-checking instrumentation
      to objc_msgSend_stret, and generally tightened up how
      the object-checking functions get inserted.
      
      llvm-svn: 144741
      a6cbf06d
    • Johnny Chen's avatar
      While we are at it, verify that 'my_int_ptr' points to 'g_my_int', using the... · 4c1b0967
      Johnny Chen authored
      While we are at it, verify that 'my_int_ptr' points to 'g_my_int', using the SBTarget.ResolveLoadAddress() to get its SBAddress,
      and SBAddress.GetSymbol() to get the corresponding symbol.
      
      llvm-svn: 144728
      4c1b0967
  3. Nov 15, 2011
    • Johnny Chen's avatar
      Fix objc runtime warnings from the inferior program. · f031bb19
      Johnny Chen authored
      llvm-svn: 144717
      f031bb19
    • Sean Callanan's avatar
      Made Target own a ClangASTSource that will be used · 4bf80d55
      Sean Callanan authored
      to complete types in the scratch AST context.
      
      llvm-svn: 144712
      4bf80d55
    • Sean Callanan's avatar
      Eliminated a compile warning by removing dyn_cast · 100d74e2
      Sean Callanan authored
      where isa is good enough.
      
      llvm-svn: 144704
      100d74e2
    • Sean Callanan's avatar
      Removed the ClangASTImporter pointer from · b4db660c
      Sean Callanan authored
      ClangExpressionDeclMap, which actually uses the
      one it inherits from ClangASTSource.
      
      llvm-svn: 144702
      b4db660c
    • Johnny Chen's avatar
    • Johnny Chen's avatar
      File renaming. · b0571965
      Johnny Chen authored
      llvm-svn: 144693
      b0571965
    • Sean Callanan's avatar
      Fixed a bug where the variable-resolution code · fe5d139b
      Sean Callanan authored
      would occasionally try to resolve the placeholder
      variable used for static data allocation.
      
      llvm-svn: 144677
      fe5d139b
    • Greg Clayton's avatar
      Bumped Xcode project version for lldb-88 and debugserver-152. · 2d8d63a9
      Greg Clayton authored
      llvm-svn: 144616
      2d8d63a9
    • Greg Clayton's avatar
      Added a new class to Process.h: ProcessAttachInfo. This class contains enough · 144f3a9c
      Greg Clayton authored
      info for us to attach by pid, or by name and will also allow us to eventually
      do a lot more powerful attaches. If you look at the options for the "platform
      process list" command, there are many options which we should be able to
      specify. This will allow us to do things like "attach to a process named 'tcsh'
      that has a parent process ID of 123", or "attach to a process named 'x' which
      has an effective user ID of 345". 
      
      I finished up the --shell implementation so that it can be used without the
      --tty option in "process launch". The "--shell" option now can take an 
      optional argument which is the path to the shell to use (or a partial name
      like "sh" which we will find using the current PATH environment variable).
      
      Modified the Process::Attach to use the new ProcessAttachInfo as the sole
      argument and centralized a lot of code that was in the "process attach"
      Execute function so that everyone can take advantage of the powerful new
      attach functionality.
      
      llvm-svn: 144615
      144f3a9c
    • Sean Callanan's avatar
      Pulled in a new version of LLVM/Clang to solve a variety · d5c17edb
      Sean Callanan authored
      of problems with Objective-C object completion.  To go
      along with the LLVM/Clang-side fixes, we have a variety
      of Objective-C improvements.
      
      Fixes include:
      
      - It is now possible to run expressions when stopped in
        an Objective-C class method and have "self" act just
        like "self" would act in the class method itself (i.e.,
        [self classMethod] works without casting the return
        type if debug info is present).  To accomplish this,
        the expression masquerades as a class method added by
        a category.
      
      - Objective-C objects can now provide methods and
        properties and methods to Clang on demand (i.e., the
        ASTImporter sets hasExternalVisibleDecls on Objective-C
        interface objects).
      
      - Objective-C built-in types, which had long been a bone
        of contention (should we be using "id"?  "id*"?), are
        now fetched correctly using accessor functions on
        ClangASTContext.  We inhibit searches for them in the
        debug information.
      
      There are also a variety of logging fixes, and I made two
      changes to the test suite:
      
      - Enabled a test case for Objective-C properties in the
        current translation unit.
      
      - Added a test case for calling Objective-C class methods
        when stopped in a class method.
      
      llvm-svn: 144607
      d5c17edb
    • Johnny Chen's avatar
      Add bench entries. · 8bb27b23
      Johnny Chen authored
      llvm-svn: 144584
      8bb27b23
  4. Nov 14, 2011
  5. Nov 13, 2011
    • Greg Clayton's avatar
      <rdar://problem/10126482> · da7bc7d0
      Greg Clayton authored
      Fixed an issues with the SBType and SBTypeMember classes:
      - Fixed SBType to be able to dump itself from python
      - Fixed SBType::GetNumberOfFields() to return the correct value for objective C interfaces
      - Fixed SBTypeMember to be able to dump itself from python
      - Fixed the SBTypeMember ability to get a field offset in bytes (the value
        being returned was wrong)
      - Added the SBTypeMember ability to get a field offset in bits
      
      
      Cleaned up a lot of the Stream usage in the SB API files.
      
      llvm-svn: 144493
      da7bc7d0
    • Greg Clayton's avatar
      <rdar://problem/10103980> · 93e8619d
      Greg Clayton authored
      A long time ago we started to centralized the STDOUT in lldb_private::Process
      but we missed a few things still in ProcessGDBRemote.
      
      llvm-svn: 144491
      93e8619d
    • Greg Clayton's avatar
      <rdar://problem/10338439> · 2fc93eab
      Greg Clayton authored
      This is the actual fix for the above radar where global variables that weren't
      initialized were not being shown correctly when leaving the DWARF in the .o 
      files. Global variables that aren't intialized have symbols in the .o files
      that specify they are undefined and external to the .o file, yet document the
      size of the variable. This allows the compiler to emit a single copy, but makes
      it harder for our DWARF in .o files with the executable having a debug map
      because the symbol for the global in the .o file doesn't exist in a section
      that we can assign a fixed up linked address to, and also the DWARF contains
      an invalid address in the "DW_OP_addr" location (always zero). This means that
      the DWARF is incorrect and actually maps all such global varaibles to the
      first file address in the .o file which is usually the first function. So we
      can fix this in either of two ways: make a new fake section in the .o file
      so that we have a file address in the .o file that we can relink, or fix the 
      the variable as it is created in the .o file DWARF parser and actually give it
      the file address from the executable. Each variable contains a 
      SymbolContextScope, or a single pointer that helps us to recreate where the
      variables came from (which module, file, function, etc). This context helps
      us to resolve any file addresses that might be in the location description of
      the variable by pointing us to which file the file address comes from, so we
      can just replace the SymbolContextScope and also fix up the location, which we
      would have had to do for the other case as well, and update the file address.
      Now globals display correctly.
      
      The above changes made it possible to determine if a variable is a global
      or static variable when parsing DWARF. The DWARF emits a DW_TAG_variable tag
      for each variable (local, global, or static), yet DWARF provides no way for
      us to classify these variables into these categories. We can now detect when
      a variable has a simple address expressions as its location and this will help
      us classify these correctly.
      
      While making the above changes I also noticed that we had two symbol types:
      eSymbolTypeExtern and eSymbolTypeUndefined which mean essentially the same
      thing: the symbol is not defined in the current object file. Symbol objects
      also have a bit that specifies if a symbol is externally visible, so I got
      rid of the eSymbolTypeExtern symbol type and moved all code locations that
      used it to use the eSymbolTypeUndefined type.
       
      
      llvm-svn: 144489
      2fc93eab
  6. Nov 12, 2011
Loading