Skip to content
  1. Sep 16, 2011
  2. Sep 15, 2011
  3. Sep 09, 2011
    • Enrico Granata's avatar
      Adding two new options to the 'help' command: · 08633eea
      Enrico Granata authored
       --show-aliases (-a) shows aliases for commands, as well as built-in commands
       --hide-user-defined (-u) hides user defined commands
      by default 'help' without arguments does not show aliases anymore. to see them, add --show-aliases
      to have only built-in commands appear, use 'help --hide-user-defined' ; there is currently no way to hide
      built-in commands from the help output
      'help command' is not changed by this commit, and help is shown even if command is an alias and -a is not specified
      
      llvm-svn: 139377
      08633eea
    • Jim Ingham's avatar
      Move the SourceManager from the Debugger to the Target. That way it can store... · b7f6b2fa
      Jim Ingham authored
      Move the SourceManager from the Debugger to the Target.  That way it can store the per-Target default Source File & Line.
      Set the default Source File & line to main (if it can be found.) at startup.  Selecting the current thread & or frame resets 
      the current source file & line, and "source list" as well as the breakpoint command "break set -l <NUM>" will use the 
      current source file.
      
      llvm-svn: 139323
      b7f6b2fa
  4. Sep 06, 2011
    • Johnny Chen's avatar
      Test should print to stdout only if self.TraceOn() is True. · 1ac383c6
      Johnny Chen authored
      llvm-svn: 139174
      1ac383c6
    • Enrico Granata's avatar
      Redesign of the interaction between Python and frozen objects: · 9128ee2f
      Enrico Granata authored
       - introduced two new classes ValueObjectConstResultChild and ValueObjectConstResultImpl: the first one is a ValueObjectChild obtained from
         a ValueObjectConstResult, the second is a common implementation backend for VOCR and VOCRCh of method calls meant to read through pointers stored
         in frozen objects ; now such reads transparently move from host to target as required
       - as a consequence of the above, removed code that made target-memory copies of expression results in several places throughout LLDB, and also
         removed code that enabled to recognize an expression result VO as such
       - introduced a new GetPointeeData() method in ValueObject that lets you read a given amount of objects of type T from a VO
         representing a T* or T[], and doing dereferences transparently
         in private layer it returns a DataExtractor ; in public layer it returns an instance of a newly created lldb::SBData
       - as GetPointeeData() does the right thing for both frozen and non-frozen ValueObject's, reimplemented ReadPointedString() to use it
         en lieu of doing the raw read itself
       - introduced a new GetData() method in ValueObject that lets you get a copy of the data that backs the ValueObject (for pointers,
         this returns the address without any previous dereferencing steps ; for arrays it actually reads the whole chunk of memory)
         in public layer this returns an SBData, just like GetPointeeData()
       - introduced a new CreateValueFromData() method in SBValue that lets you create a new SBValue from a chunk of data wrapped in an SBData
         the limitation to remember for this kind of SBValue is that they have no address: extracting the address-of for these objects (with any
         of GetAddress(), GetLoadAddress() and AddressOf()) will return invalid values
       - added several tests to check that "p"-ing objects (STL classes, char* and char[]) will do the right thing
      Solved a bug where global pointers to global variables were not dereferenced correctly for display
      New target setting "max-string-summary-length" gives the maximum number of characters to show in a string when summarizing it, instead of the hardcoded 128
      Solved a bug where the summary for char[] and char* would not be shown if the ValueObject's were dumped via the "p" command
      Removed m_pointers_point_to_load_addrs from ValueObject. Introduced a new m_address_type_of_children, which each ValueObject can set to tell the address type
       of any pointers and/or references it creates. In the current codebase, this is load address most of the time (the only notable exception being file
       addresses that generate file address children UNLESS we have a live process)
      Updated help text for summary-string
      Fixed an issue in STL formatters where std::stlcontainer::iterator would match the container's synthetic children providers
      Edited the syntax and help for some commands to have proper argument types
      
      llvm-svn: 139160
      9128ee2f
  5. Aug 27, 2011
  6. Aug 26, 2011
    • Johnny Chen's avatar
      Add a new attribute self.lldbHere, representing the fullpath to the 'lldb' executable · d890bfc9
      Johnny Chen authored
      built locally from the source tree.  This is distinguished from self.lldbExec, which
      can be used by test/benchmarks to measure the performances against other debuggers.
      
      You can use environment variable LLDB_EXEC to specify self.lldbExec to the dotest.py
      test driver, otherwise it is going to be populated with self.lldbHere.
      
      Modify the regular tests under test dir, i.e., not test/benchmarks, to use self.lldbHere.
      Also modify the benchmarks tests to use self.lldbHere when it needs an 'lldb' executable
      with debug info to do the performance measurements.
      
      llvm-svn: 138608
      d890bfc9
  7. Aug 25, 2011
  8. Aug 24, 2011
  9. Aug 23, 2011
    • Johnny Chen's avatar
      Make clang the default compiler for building the test programs. · 597cbbbd
      Johnny Chen authored
      llvm-svn: 138391
      597cbbbd
    • Enrico Granata's avatar
      Improved the user-friendliness of errors shown by the summary feature in certain areas · 88da35f8
      Enrico Granata authored
      Renamed format "signed decimal" to be "decimal". "unsigned decimal" remains unchanged:
       - the name "signed decimal" was interfering with symbol %S (use summary) in summary strings.
         because of the way summary strings are implemented, this did not really lead to a bug, but
         simply to performing more steps than necessary to display a summary. this is fixed.
      Documentation improvements (more on synthetic children, some information on filters). This is still a WIP.
      
      llvm-svn: 138384
      88da35f8
    • Sean Callanan's avatar
      Added support for persistent types to the · bccce813
      Sean Callanan authored
      expression parser.  You can use a persistent
      type like this:
      
      (lldb) expr struct $foo { int a; int b; };
      (lldb) struct $foo i; i.a = 2; i.b = 3; i
      ($foo) $0 = {
        (int) a = 2
        (int) b = 3
      }
      
      typedefs work similarly.
      
      This patch affects the following files:
      
      test/expression_command/persistent_types/*
        A test case for persistent types,
        in particular structs and typedefs.
      
      ClangForward.h
        Added TypeDecl, needed to declare some
        functions in ASTResultSynthesizer.h
      
      ClangPersistentVariables.[h,cpp]
        Added a list of persistent types to the
        persistent variable store.
      
      ASTResultSynthesizer.[h,cpp]
        Made the AST result synthesizer iterate
        across TypeDecls in the expression, and
        record any persistent types found.  Also
        made a minor documentation fix.
      
      ClangUserExpression.[h,cpp]
        Extended the user expression class to
        keep the state needed to report the
        persistent variable store for the target
        to the AST result synthesizers. 
      
        Also introduced a new error code for
        expressions that executed normally but
        did not return a result.
      
      CommandObjectExpression.cpp
        Improved output for expressions (like 
        declarations of new persistent types) that
        don't return a result.  This is no longer
        treated as an error.
      
      llvm-svn: 138383
      bccce813
    • Enrico Granata's avatar
      Short option for --summary-string in 'type summary add' is now -s. This might... · db3485cd
      Enrico Granata authored
      Short option for --summary-string in 'type summary add' is now -s. This might be a breaking change for those who have summaries defined.
      
      llvm-svn: 138331
      db3485cd
    • Johnny Chen's avatar
      Add some expected failure decorators with radar numbers. · 49996274
      Johnny Chen authored
      llvm-svn: 138316
      49996274
    • Enrico Granata's avatar
      Additional code cleanups ; Short option name for --python-script in type... · dc940730
      Enrico Granata authored
      Additional code cleanups ; Short option name for --python-script in type summary add moved from -s to -o (this is a preliminary step in moving the short option for --summary-string from -f to -s) ; Accordingly updated the test suite
      
      llvm-svn: 138315
      dc940730
    • Sean Callanan's avatar
      Restored the version of LLVM that we previously · 60dbc63a
      Sean Callanan authored
      rolled back, and the testcase that the rollback
      broke.
      
      The new LLVM has a new ARM disassembler, which
      may cause instability.  Keeping the old one would
      force us into a contorted position vis-a-vis the
      LLVM sources we bring in, so we will address
      issues on the new one rather than keeping the old
      one around.
      
      llvm-svn: 138284
      60dbc63a
    • Johnny Chen's avatar
      Fix the 'target variable' help syntax to output one or more <variable-name>'s. · 81ab3f5d
      Johnny Chen authored
      Add a simple test case for that.
      
      llvm-svn: 138281
      81ab3f5d
  10. Aug 22, 2011
    • Johnny Chen's avatar
      1dc9a20c
    • Enrico Granata's avatar
      - Support for Python namespaces: · def5391a
      Enrico Granata authored
        If you have a Python module foo, in order to use its contained objects in LLDB you do not need to use
        'from foo import *'. You can use 'import foo', and then refer to items in foo as 'foo.bar', and LLDB
        will know how to resolve bar as a member of foo.
        Accordingly, GNU libstdc++ formatters have been moved from the global namespace to gnu_libstdcpp and a few
        test cases are also updated to reflect the new convention. Python docs suggest using a plain 'import' en lieu of
        'from-import'.
      
      llvm-svn: 138244
      def5391a
  11. Aug 19, 2011
    • Enrico Granata's avatar
      Taking care of an issue with using lldb_private types in... · 58ad3344
      Enrico Granata authored
      Taking care of an issue with using lldb_private types in SBCommandInterpreter.cpp ; Making NSString test case work on Snow Leopard ; Removing an unused variable warning
      
      llvm-svn: 138105
      58ad3344
    • Enrico Granata's avatar
      - Now using ${var} as the summary for an aggregate type will produce... · d64d0bc0
      Enrico Granata authored
      - Now using ${var} as the summary for an aggregate type will produce "name-of-type @ object-location" instead of giving an error
        e.g. you may get "foo_class @ 0x123456" when typing "type summary add -f ${var} foo_class"
      - Added a new special formatting token %T for summaries. This shows the type of the object.
        Using it, the new "type @ location" summary could be manually generated by writing ${var%T} @ ${var%L}
      - Bits and pieces required to support "frame variable array[n-m]"
        The feature is not enabled yet because some additional design and support code is required, but the basics
        are getting there
      - Fixed a potential issue where a ValueObjectSyntheticFilter was not holding on to its SyntheticChildrenSP
        Because of the way VOSF are being built now, this has never been an actual issue, but it is still sensible for
        a VOSF to hold on to the SyntheticChildrenSP as well as to its FrontEnd
      
      llvm-svn: 138080
      d64d0bc0
    • Sean Callanan's avatar
      Refined the rollback to LLVM, picking up a newer · a87bee84
      Sean Callanan authored
      revision and adding a patch that fixes an AsmParser
      crash on ARM.
      
      One feature that we unfortunately lost (for the
      moment!) is the ability to cast unknown code symbols
      to arbitrary function types and put the resulting
      function pointer in a result variable.  This feature
      will be back, though.
      
      llvm-svn: 138036
      a87bee84
    • Enrico Granata's avatar
      More thorough fix for the spaces-in-typename issue · da616d06
      Enrico Granata authored
      llvm-svn: 138026
      da616d06
    • Johnny Chen's avatar
      Minor change for the @expectedFailureClang logic. For the non-clang test failure, re-raise · b5825b82
      Johnny Chen authored
      the exception to get more stack trace information.
      
      llvm-svn: 138021
      b5825b82
    • Enrico Granata's avatar
      Third round of code cleanups: · 02b6676d
      Enrico Granata authored
       - reorganizing the PTS (Partial Template Specializations) in FormatManager.h
       - applied a patch by Filipe Cabecinhas to make LLDB compile with GCC
      Functional changes:
       - fixed an issue where command type summary add for type "struct Foo" would not match any types.
         currently, "struct" will be stripped off and type "Foo" will be matched.
         similar behavior occurs for class, enum and union specifiers.
      
      llvm-svn: 138020
      02b6676d
    • Johnny Chen's avatar
      Add a decorator for marking clang only expectedFailure. Use it for the... · 31963cea
      Johnny Chen authored
      Add a decorator for marking clang only expectedFailure.  Use it for the test_step_over_3_times_with_dsym/dwarf()
      test cases in TestThreadAPI.py by decorating it with @expectedFailureClang.
      
      Example:
      
          @expectedFailureClang
          @python_api_test
          def test_step_over_3_times_with_dwarf(self):
              """Test Python SBThread.StepOver() API."""
              # We build a different executable than the default buildDwarf() does.
              d = {'CXX_SOURCES': 'main2.cpp', 'EXE': self.exe_name}
              self.buildDwarf(dictionary=d)
              self.setTearDownCleanup(dictionary=d)
              self.step_over_3_times(self.exe_name)
      
      llvm-svn: 138019
      31963cea
    • Johnny Chen's avatar
      42f192ad
Loading