Skip to content
  1. Sep 07, 2010
    • Greg Clayton's avatar
      Patch from Jay Cornwall that modifies the LLDB "Host" layer to reuse more · 2bddd344
      Greg Clayton authored
      code between linux, darwin and BSD.
      
      llvm-svn: 113263
      2bddd344
    • Caroline Tice's avatar
      Fix various minor bugs in the Settings stuff. · 49e2737e
      Caroline Tice authored
      llvm-svn: 113245
      49e2737e
    • Greg Clayton's avatar
      Added Symtab::FindSymbolByID() in preparation for enabling the minimal · 49bd1c84
      Greg Clayton authored
      symbol tables. Minimal symbol tables enable us to merge two symbols, one
      debug symbol and one linker symbol, into a single symbol that can carry
      just as much information and will avoid duplicate symbols in the symbol
      table.
      
      llvm-svn: 113223
      49bd1c84
    • Greg Clayton's avatar
      Added more API to lldb::SBBlock to allow getting the block · 95897c6a
      Greg Clayton authored
      parent, sibling and first child block, and access to the
      inline function information.
      
      Added an accessor the StackFrame:
      
      	Block * lldb_private::StackFrame::GetFrameBlock();
      	
      LLDB represents inline functions as lexical blocks that have
      inlined function information in them. The function above allows
      us to easily get the top most lexical block that defines a stack
      frame. When there are no inline functions in function, the block
      returned ends up being the top most block for the function. When
      the PC is in an inlined funciton for a frame, this will return the
      first parent block that has inlined function information. The
      other accessor: StackFrame::GetBlock() will return the deepest block
      that matches the frame's PC value. Since most debuggers want to display
      all variables in the current frame, the Block returned by
      StackFrame::GetFrameBlock can be used to retrieve all variables for
      the current frame.
      
      Fixed the lldb_private::Block::DumpStopContext(...) to properly
      display inline frames a block should display all of its inlined
      functions. Prior to this fix, one of the call sites was being skipped.
      This is a separate code path from the current default where inlined
      functions get their own frames.
      
      Fixed an issue where a block would always grab variables for any
      child inline function blocks.
      
      llvm-svn: 113195
      95897c6a
    • Greg Clayton's avatar
      Fixed an error that could occur during disassembly that could cause a function... · 3c68757c
      Greg Clayton authored
      Fixed an error that could occur during disassembly that could cause a function name to be printed before the first _and_ the second instruction of disassembly when there are two symbols -- one debug symbol and one linker symbol. 
      
      llvm-svn: 113181
      3c68757c
  2. Sep 04, 2010
    • Caroline Tice's avatar
      · 3df9a8df
      Caroline Tice authored
      This is a very large commit that completely re-does the way lldb
      handles user settable internal variables (the equivalent of set/show
      variables in gdb).  In addition to the basic infrastructure (most of
      which is defined in UserSettingsController.{h,cpp}, there are examples
      of two classes that have been set up to contain user settable
      variables (the Debugger and Process classes).  The 'settings' command
      has been modified to be a command-subcommand structure, and the 'set',
      'show' and 'append' commands have been moved into this sub-commabnd
      structure.  The old StateVariable class has been completely replaced
      by this, and the state variable dictionary has been removed from the
      Command Interpreter.  Places that formerly accessed the state variable
      mechanism have been modified to access the variables in this new
      structure instead (checking the term-width; getting/checking the
      prompt; etc.)
      
      Variables are attached to classes; there are two basic "flavors" of
      variables that can be set: "global" variables (static/class-wide), and
      "instance" variables (one per instance of the class).  The whole thing
      has been set up so that any global or instance variable can be set at
      any time (e.g. on start up, in your .lldbinit file), whether or not
      any instances actually exist (there's a whole pending and default
      values mechanism to help deal with that).
      
      llvm-svn: 113041
      3df9a8df
    • Greg Clayton's avatar
      Improved name demangling performance by 20% on darwin. · e41e5899
      Greg Clayton authored
      llvm-svn: 113032
      e41e5899
    • Greg Clayton's avatar
      Cleaned up step logging a bit. · 1346f7e0
      Greg Clayton authored
      llvm-svn: 113023
      1346f7e0
    • Johnny Chen's avatar
      Fixed an lldb infrastructure bug, where the debugger should reaaly update its · 725945d5
      Johnny Chen authored
      execution context only when the process is still alive.  When running the test
      suite, the debugger is launching and killing processes constantly.
      
      This might be the cause of the test hang as reported in rdar://problem/8377854,
      where the debugger was looping infinitely trying to update a supposedly stale
      thread list.
      
      llvm-svn: 113022
      725945d5
  3. Sep 03, 2010
  4. Sep 02, 2010
    • Greg Clayton's avatar
      Added a new bool parameter to many of the DumpStopContext() methods that · 6dadd508
      Greg Clayton authored
      might dump file paths that allows the dumping of full paths or just the
      basenames. Switched the stack frame dumping code to use just the basenames for
      the files instead of the full path.
      
      Modified the StackID class to no rely on needing the start PC for the current
      function/symbol since we can use the SymbolContextScope to uniquely identify
      that, unless there is no symbol context scope. In that case we can rely upon
      the current PC value. This saves the StackID from having to calculate the 
      start PC when the StackFrame::GetStackID() accessor is called.
      
      Also improved the StackID less than operator to correctly handle inlined stack
      frames in the same stack.
      
      llvm-svn: 112867
      6dadd508
    • Greg Clayton's avatar
      StackFrame objects now own ValueObjects for any frame variables (locals, args, · 288bdf9c
      Greg Clayton authored
      function statics, file globals and static variables) that a frame contains. 
      The StackFrame objects can give out ValueObjects instances for
      each variable which allows us to track when a variable changes and doesn't
      depend on variable names when getting value objects.
      
      StackFrame::GetVariableList now takes a boolean to indicate if we want to
      get the frame compile unit globals and static variables.
      
      The value objects in the stack frames can now correctly track when they have
      been modified. There are a few more tweaks needed to complete this work. The
      biggest issue is when stepping creates partial stacks (just frame zero usually)
      and causes previous stack frames not to match up with the current stack frames
      because the previous frames only has frame zero. We don't really want to 
      require that all previous frames be complete since stepping often must check
      stack frames to complete their jobs. I will fix this issue tomorrow.
      
      llvm-svn: 112800
      288bdf9c
    • Sean Callanan's avatar
      Added code to run pointer validation checks in · 8e999e40
      Sean Callanan authored
      expressions.  If an expression dereferences an
      invalid pointer, there will still be a crash -
      just now the crash will be in the function
      ___clang_valid_pointer_check().
      
      llvm-svn: 112785
      8e999e40
    • Jim Ingham's avatar
      Move "variable list" to "frame variable" · 6d56d2ce
      Jim Ingham authored
      llvm-svn: 112782
      6d56d2ce
  5. Sep 01, 2010
  6. Aug 31, 2010
  7. Aug 30, 2010
  8. Aug 28, 2010
  9. Aug 27, 2010
    • Greg Clayton's avatar
      Made it so we update the current frames from the previous frames by doing STL · 68275d5e
      Greg Clayton authored
      swaps on the variable list, value object list, and disassembly. This avoids
      us having to try and update frame indexes and other things that were getting
      out of sync.
      
      llvm-svn: 112301
      68275d5e
    • Greg Clayton's avatar
      Simplified the StackFrameList class down to a single frames list again · 5082c5fd
      Greg Clayton authored
      instead of trying to maintain the real frame list (unwind frames) and an
      inline frame list. The information is cheap to produce when we already have
      looked up a block and was making stack frame uniquing difficult when trying
      to use the previous stack when making the current stack.
      
      We now maintain the previous value object lists for common frames between
      a previous and current frames so we will be able to tell when variable values
      change.
      
      llvm-svn: 112277
      5082c5fd
    • Sean Callanan's avatar
      This is a major refactoring of the expression parser. · 1a8d4093
      Sean Callanan authored
      The goal is to separate the parser's data from the data
      belonging to the parser's clients.  This allows clients
      to use the parser to obtain (for example) a JIT compiled
      function or some DWARF code, and then discard the parser
      state.
      
      Previously, parser state was held in ClangExpression and
      used liberally by ClangFunction, which inherited from
      ClangExpression.  The main effects of this refactoring 
      are:
      
      - reducing ClangExpression to an abstract class that
        declares methods that any client must expose to the
        expression parser,
      
      - moving the code specific to implementing the "expr"
        command from ClangExpression and
        CommandObjectExpression into ClangUserExpression,
        a new class,
      
      - moving the common parser interaction code from
        ClangExpression into ClangExpressionParser, a new
        class, and
      
      - making ClangFunction rely only on
        ClangExpressionParser and not depend on the
        internal implementation of ClangExpression.
      
      Side effects include:
      
      - the compiler interaction code has been factored
        out of ClangFunction and is now in an AST pass
        (ASTStructExtractor),
      
      - the header file for ClangFunction is now fully
        documented,
      
      - several bugs that only popped up when Clang was
        deallocated (which never happened, since the
        lifetime of the compiler was essentially infinite)
        are now fixed, and
      
      - the developer-only "call" command has been
        disabled.
      
      I have tested the expr command and the Objective-C
      step-into code, which use ClangUserExpression and
      ClangFunction, respectively, and verified that they
      work.  Please let me know if you encounter bugs or
      poor documentation.
      
      llvm-svn: 112249
      1a8d4093
    • Jim Ingham's avatar
      Make: · 09b263e0
      Jim Ingham authored
      bt all
      
      show the backtrace for all threads, and:
      
      bt 1 3 4
      
      show the backtrace for threads 1, 3 and 4.  If we want to come up with some fancier syntax for thread lists later, that will be great, but this will do for now.
      
      llvm-svn: 112248
      09b263e0
    • Jim Ingham's avatar
      Change the "-S", "-F" and "-M" options to take their arguments directly,... · 2561aa61
      Jim Ingham authored
      Change the "-S", "-F" and "-M" options to take their arguments directly, rather than requiring the -n option.  This means you can't "or" together the types (i.e. set a breakpoint on a method or selector called "whatever".  But that is a pretty uncommon operation, and having to provide two flags for the more common "set a breakpoint on this selector" is annoying.
      
      llvm-svn: 112245
      2561aa61
    • Jim Ingham's avatar
      Add -c (count - i.e. number of frames to show) and -s (start frame.) · e2e0b451
      Jim Ingham authored
      llvm-svn: 112243
      e2e0b451
    • Greg Clayton's avatar
      Changed the StackID to store its start PC address as a load address instead of · 12fc3e0f
      Greg Clayton authored
      a section offset address.
      
      Fixed up some very inefficient STL code.
      
      llvm-svn: 112230
      12fc3e0f
Loading