Skip to content
  1. Sep 18, 2010
    • Greg Clayton's avatar
      Fixed the way set/show variables were being accessed to being natively · a7015092
      Greg Clayton authored
      accessed by the objects that own the settings. The previous approach wasn't
      very usable and made for a lot of unnecessary code just to access variables
      that were already owned by the objects.
      
      While I fixed those things, I saw that CommandObject objects should really
      have a reference to their command interpreter so they can access the terminal
      with if they want to output usaage. Fixed up all CommandObjects to take
      an interpreter and cleaned up the API to not need the interpreter to be
      passed in.
      
      Fixed the disassemble command to output the usage if no options are passed
      down and arguments are passed (all disassebmle variants take options, there
      are no "args only").
      
      llvm-svn: 114252
      a7015092
  2. Sep 17, 2010
  3. Sep 16, 2010
  4. Sep 15, 2010
  5. Sep 14, 2010
    • Sean Callanan's avatar
      Added code to support use of "this" and "self" in · 44096b1a
      Sean Callanan authored
      expressions.  This involved three main changes:
      
       - In ClangUserExpression::ClangUserExpression(),
         we now insert the following lines into the
         expression:
           #define this ___clang_this
           #define self ___clang_self
      
       - In ClangExpressionDeclMap::GetDecls(), we
         special-case ___clang_(this|self) and instead
         look up "this" or "self"
      
       - In ClangASTSource, we introduce the capability
         to generate Decls with a different, overridden,
         name from the one that was requested, e.g.
         this for ___clang_this.
      
      llvm-svn: 113866
      44096b1a
    • Greg Clayton's avatar
      95112df6
    • Greg Clayton's avatar
      Fixed an issue that was always causing an extra empty argument to be sent · a52c155e
      Greg Clayton authored
      to any inferior process because the code was checking if no run args were
      set and then adding and empty string. This was happening for environment
      vars as well.
      
      llvm-svn: 113831
      a52c155e
    • Greg Clayton's avatar
      Fixed the implementation of "bool Block::Contains (const Block *block) const" · 6f00abd5
      Greg Clayton authored
      to return the correct result.
      
      Fixed "bool Variable::IsInScope (StackFrame *frame)" to return the correct
      result when there are no location lists.
      
      Modified the "frame variable" command such that:
      - if no arguments are given (dump all frame variables), then we only show
        variables that are currently in scope
      - if some arguments are given, we show an error if the variable is out of 
        scope
      
      llvm-svn: 113830
      6f00abd5
    • Greg Clayton's avatar
      Looking at some of the test suite failures in DWARF in .o files with the · 016a95eb
      Greg Clayton authored
      debug map showed that the location lists in the .o files needed some 
      refactoring in order to work. The case that was failing was where a function
      that was in the "__TEXT.__textcoal_nt" in the .o file, and in the 
      "__TEXT.__text" section in the main executable. This made symbol lookup fail
      due to the way we were finding a real address in the debug map which was
      by finding the section that the function was in in the .o file and trying to
      find this in the main executable. Now the section list supports finding a
      linked address in a section or any child sections. After fixing this, we ran
      into issue that were due to DWARF and how it represents locations lists. 
      DWARF makes a list of address ranges and expressions that go along with those
      address ranges. The location addresses are expressed in terms of a compile
      unit address + offset. This works fine as long as nothing moves around. When
      stuff moves around and offsets change between the remapped compile unit base
      address and the new function address, then we can run into trouble. To deal
      with this, we now store supply a location list slide amount to any location
      list expressions that will allow us to make the location list addresses into
      zero based offsets from the object that owns the location list (always a
      function in our case). 
      
      With these fixes we can now re-link random address ranges inside the debugger
      for use with our DWARF + debug map, incremental linking, and more.
      
      Another issue that arose when doing the DWARF in the .o files was that GCC
      4.2 emits a ".debug_aranges" that only mentions functions that are externally
      visible. This makes .debug_aranges useless to us and we now generate a real
      address range lookup table in the DWARF parser at the same time as we index
      the name tables (that are needed because .debug_pubnames is just as useless).
      llvm-gcc doesn't generate a .debug_aranges section, though this could be 
      fixed, we aren't going to rely upon it.
      
      Renamed a bunch of "UINT_MAX" to "UINT32_MAX".
      
      llvm-svn: 113829
      016a95eb
    • Johnny Chen's avatar
      Fixed an error in Debugger::UpdateExecutionContext() where an invalid index ID 0 · c13ee52c
      Johnny Chen authored
      was used to set the selected thread if none was selected.  Use a more robust
      API to accomplish the task.
      
      Also fixed an error found, while investigating, in CommandObjectThreadSelect::
      Execute() where the return status was not properly set if successful.
      
      As a result, both the stl step-in test cases with expectedFailure decorators now
      passed.
      
      llvm-svn: 113825
      c13ee52c
  6. Sep 13, 2010
    • Sean Callanan's avatar
      Bugfixes to the expression parser. Fixes include: · 9e6ed53e
      Sean Callanan authored
       - If you put a semicolon at the end of an expression,
         this no longer causes the expression parser to
         error out.  This was a two-part fix: first,
         ClangExpressionDeclMap::Materialize now handles
         an empty struct (such as when there is no return
         value); second, ASTResultSynthesizer walks backward
         from the end of the ASTs until it reaches something
         that's not a NullStmt.
      
       - ClangExpressionVariable now properly byte-swaps when
         printing itself.
      
       - ClangUtilityFunction now cleans up after itself when
         it's done compiling itself.
      
       - Utility functions can now use external functions just
         like user expressions.
      
       - If you end your expression with a statement that does
         not return a value, the expression now runs correctly
         anyway.
      
      Also, added the beginnings of an Objective-C object
      validator function, which is neither installed nor used
      as yet.
      
      llvm-svn: 113789
      9e6ed53e
    • Caroline Tice's avatar
      Clean up help text. · 8830091a
      Caroline Tice authored
      llvm-svn: 113738
      8830091a
    • Greg Clayton's avatar
      Fixed an assertion that happened when debugging DWARF in .o files with debug · ffc1d667
      Greg Clayton authored
      map on macosx.
      
      llvm-svn: 113737
      ffc1d667
Loading