Skip to content
  1. Nov 16, 2010
  2. Nov 15, 2010
  3. Nov 14, 2010
    • Greg Clayton's avatar
      Just like functions can have a basename and a mangled/demangled name, variable · 83c5cd9d
      Greg Clayton authored
      can too. So now the lldb_private::Variable class has support for this.
      
      Variables now have support for having a basename ("i"), and a mangled name 
      ("_ZN12_GLOBAL__N_11iE"), and a demangled name ("(anonymous namespace)::i").
      
      Nowwhen searching for a variable by name, users might enter the fully qualified
      name, or just the basename. So new test functions were added to the Variable 
      and Mangled classes as:
      
      	bool NameMatches (const ConstString &name);
      	bool NameMatches (const RegularExpression &regex);
      
      I also modified "ClangExpressionDeclMap::FindVariableInScope" to also search
      for global variables that are not in the current file scope by first starting
      with the current module, then moving on to all modules.
      
      Fixed an issue in the DWARF parser that could cause a varaible to get parsed
      more than once. Now, once we have parsed a VariableSP for a DIE, we cache
      the result even if a variable wasn't made so we don't do any re-parsing. Some
      DW_TAG_variable DIEs don't have locations, or are missing vital info that 
      stops a debugger from being able to display anything for it, we parse a NULL
      variable shared pointer for these DIEs so we don't keep trying to reparse it.
      
      llvm-svn: 119085
      83c5cd9d
    • Greg Clayton's avatar
      Fixed an issue where we were trying to resolve lldb_private::Type encoding · 32d2a483
      Greg Clayton authored
      types to their full definitions more than we needed to. This caused an assertion
      in the DWARF parser to fire -- which is an indication that we are parsing too much.
      
      llvm-svn: 119020
      32d2a483
    • Greg Clayton's avatar
      Fixed a crasher (an assert was firing in the DWARF parser) when setting · d7e05469
      Greg Clayton authored
      breakpoints on inlined functions by name. This involved fixing the DWARF parser
      to correctly back up and parse the concrete function when we find inlined
      functions by name, then grabbing any appropriate inlined blocks and returning
      symbol contexts with the block filled in. After this was fixed, the breakpoint
      by name resolver needed to correctly deal with symbol contexts that had the
      inlined block filled in in the symbol contexts.
      
      llvm-svn: 119017
      d7e05469
  4. Nov 13, 2010
    • Greg Clayton's avatar
      Fixed an issue where we might not find global variables by name when we have · ba2d22d8
      Greg Clayton authored
      a debug map with DWARF in the .o files due to the attemted shortcut that was
      being taken where the global variables were being searched for by looking in
      the symbol table. The problem with the symbols in the symbol table is we don't
      break apart the symbol names for symbols when they are mangled into basename
      and the fully mangled name since this would take a lot of CPU time to chop up
      the mangled names and try and find the basenames. The DWARF info typically has
      this broken up for us where the basename of the variable is in a the DW_AT_name
      attribute, and the mangled name is in the DW_AT_MIPS_linkage_name attribute.
      Now we correctly find globals by searching all OSO's for the information so we
      can take advantage of this split information. 
      
      llvm-svn: 119012
      ba2d22d8
    • Greg Clayton's avatar
      Got namespace lookup working and was able to print a complex "this" as an · 580c5dac
      Greg Clayton authored
      expression. This currently takes waaaayyyyy too much time to evaluate. We will
      need to look at the expression parser and find ways to optimize the info we
      provide and get this to evaluate quicker. I believe the performance issue is
      currently related to us always providing a complete C++ class type when asked
      about a C++ class which can cause a lot of information to be pulled since all
      classes will be fully created (methods, base classes, members, all their 
      types). We will need to give the classes back the parser and mark them as 
      having external sources and get parser (Sema) to query us when it needs more
      info. This should bring things up to an acceptable level.
      
      llvm-svn: 118979
      580c5dac
    • Greg Clayton's avatar
      Modified the lldb_private::Type clang type resolving code to handle three · 526e5afb
      Greg Clayton authored
      cases when getting the clang type:
      - need only a forward declaration
      - need a clang type that can be used for layout (members and args/return types)
      - need a full clang type
      
      This allows us to partially parse the clang types and be as lazy as possible.
      The first case is when we just need to declare a type and we will complete it
      later. The forward declaration happens only for class/union/structs and enums.
      The layout type allows us to resolve the full clang type _except_ if we have
      any modifiers on a pointer or reference (both R and L value). In this case
      when we are adding members or function args or return types, we only need to
      know how the type will be laid out and we can defer completing the pointee
      type until we later need it. The last type means we need a full definition for
      the clang type.
      
      Did some renaming of some enumerations to get rid of the old "DC" prefix (which
      stands for DebugCore which is no longer around).
      
      Modified the clang namespace support to be almost ready to be fed to the
      expression parser. I made a new ClangNamespaceDecl class that can carry around
      the AST and the namespace decl so we can copy it into the expression AST. I
      modified the symbol vendor and symbol file plug-ins to use this new class.
      
      llvm-svn: 118976
      526e5afb
  5. Nov 12, 2010
  6. Nov 11, 2010
Loading