Skip to content
  1. Oct 14, 2011
    • Johnny Chen's avatar
      SBValue::Watch() and SBValue::WatchPointee() are now the official API for creating · 01a67860
      Johnny Chen authored
      a watchpoint for either the variable encapsulated by SBValue (Watch) or the pointee
      encapsulated by SBValue (WatchPointee).
      
      Removed SBFrame::WatchValue() and SBFrame::WatchLocation() API as a result of that.
      
      Modified the watchpoint related test suite to reflect the change.
      
      Plus replacing WatchpointLocation with Watchpoint throughout the code base.
      
      There are still cleanups to be dome.  This patch passes the whole test suite.
      Check it in so that we aggressively catch regressions.
      
      llvm-svn: 141925
      01a67860
  2. Oct 13, 2011
  3. Oct 11, 2011
  4. Oct 08, 2011
  5. Oct 04, 2011
  6. Oct 03, 2011
  7. Oct 01, 2011
    • Johnny Chen's avatar
      Add SBFrame.WatchLocation() to find and watch the location pointed to by · b49b7b53
      Johnny Chen authored
      a variable usng the frame as the scope.
      
      Add TestSetWatchpoint.py to exercise this API.  Also fix some SWIG Python
      docstrings.
      
      llvm-svn: 140914
      b49b7b53
    • Greg Clayton's avatar
      Cleaned up the the code that figures out the inlined stack frames given a · 1ed54f50
      Greg Clayton authored
      symbol context that represents an inlined function. This function has been
      renamed internally to:
      
      bool
      SymbolContext::GetParentOfInlinedScope (const Address &curr_frame_pc, 
                                              SymbolContext &next_frame_sc, 
                                              Address &next_frame_pc) const;
                                              
      And externally to:
      
      SBSymbolContext
      SBSymbolContext::GetParentOfInlinedScope (const SBAddress &curr_frame_pc, 
                                                SBAddress &parent_frame_addr) const;
      
      The correct blocks are now correctly calculated.
      
      Switched the stack backtracing engine (in StackFrameList) and the address
      context printing over to using the internal SymbolContext::GetParentOfInlinedScope(...) 
      so all inlined callstacks will match exactly.
      
      llvm-svn: 140910
      1ed54f50
  8. Sep 30, 2011
    • Johnny Chen's avatar
      Add docstring to in_range() function residing in the lldb module. · 97b5083c
      Johnny Chen authored
      llvm-svn: 140833
      97b5083c
    • Johnny Chen's avatar
      Migrate the in_range(symbol, section) and symbol_iter(module, section) utility functions · c44e20ce
      Johnny Chen authored
      from lldbutil.py to the lldb.py proper.  The in_range() function becomes a function in
      the lldb module.  And the symbol_iter() function becomes a method within the SBModule
      called symbol_in_section_iter().  Example:
      
              # Iterates the text section and prints each symbols within each sub-section.
              for subsec in text_sec:
                  print INDENT + repr(subsec)
                  for sym in exe_module.symbol_in_section_iter(subsec):
                      print INDENT2 + repr(sym)
                      print INDENT2 + 'symbol type: %s' % symbol_type_to_str(sym.GetType())
      
      might produce this following output:
      
          [0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text
              id = {0x00000004}, name = 'mask_access(MaskAction, unsigned int)', range = [0x00000001000017c0-0x0000000100001870)
              symbol type: code
              id = {0x00000008}, name = 'thread_func(void*)', range = [0x0000000100001870-0x00000001000019b0)
              symbol type: code
              id = {0x0000000c}, name = 'main', range = [0x00000001000019b0-0x0000000100001d5c)
              symbol type: code
              id = {0x00000023}, name = 'start', address = 0x0000000100001780
              symbol type: code
          [0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs
              id = {0x00000024}, name = '__stack_chk_fail', range = [0x0000000100001d5c-0x0000000100001d62)
              symbol type: trampoline
              id = {0x00000028}, name = 'exit', range = [0x0000000100001d62-0x0000000100001d68)
              symbol type: trampoline
              id = {0x00000029}, name = 'fflush', range = [0x0000000100001d68-0x0000000100001d6e)
              symbol type: trampoline
              id = {0x0000002a}, name = 'fgets', range = [0x0000000100001d6e-0x0000000100001d74)
              symbol type: trampoline
              id = {0x0000002b}, name = 'printf', range = [0x0000000100001d74-0x0000000100001d7a)
              symbol type: trampoline
              id = {0x0000002c}, name = 'pthread_create', range = [0x0000000100001d7a-0x0000000100001d80)
              symbol type: trampoline
              id = {0x0000002d}, name = 'pthread_join', range = [0x0000000100001d80-0x0000000100001d86)
              symbol type: trampoline
              id = {0x0000002e}, name = 'pthread_mutex_lock', range = [0x0000000100001d86-0x0000000100001d8c)
              symbol type: trampoline
              id = {0x0000002f}, name = 'pthread_mutex_unlock', range = [0x0000000100001d8c-0x0000000100001d92)
              symbol type: trampoline
              id = {0x00000030}, name = 'rand', range = [0x0000000100001d92-0x0000000100001d98)
              symbol type: trampoline
              id = {0x00000031}, name = 'strtoul', range = [0x0000000100001d98-0x0000000100001d9e)
              symbol type: trampoline
              id = {0x00000032}, name = 'usleep', range = [0x0000000100001d9e-0x0000000100001da4)
              symbol type: trampoline
          [0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper
          [0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring
          [0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info
          [0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame
      
      llvm-svn: 140830
      c44e20ce
  9. Sep 27, 2011
  10. Sep 26, 2011
    • Greg Clayton's avatar
      Added more functionality to the public API to allow for better · 8f7180b1
      Greg Clayton authored
      symbolication. Also improved the SBInstruction API to allow
      access to the instruction opcode name, mnemonics, comment and
      instruction data.
      
      Added the ability to edit SBLineEntry objects (change the file,
      line and column), and also allow SBSymbolContext objects to be
      modified (set module, comp unit, function, block, line entry
      or symbol). 
      
      The SymbolContext and SBSymbolContext can now generate inlined
      call stack infomration for symbolication much easier using the
      SymbolContext::GetParentInlinedFrameInfo(...) and 
      SBSymbolContext::GetParentInlinedFrameInfo(...) methods.
      
      llvm-svn: 140518
      8f7180b1
  11. Sep 24, 2011
    • Greg Clayton's avatar
      Added the ability to get all section contents, or the section · d9dc52dc
      Greg Clayton authored
      contents starting at an offset (2 separate methods). This helps
      the scripting interface stay more natural by allowing both from
      Python.
      
      Added the ability to dump data with address annotations when
      call SBData::GetDescription().
      
      Hooked up the SBSection to the __repr__ so you can print section
      objects from within python.
      
      Improved the dumping of symbols from python.
      
      Fixed the .i interface references which were set to "Relative to this Group"
      which somehow included Jim's "lldb-clean" root directory in the path. The
      interfaces are now in a folder called "interfaces" withing the Xcode API
      subfolder.
      
      llvm-svn: 140451
      d9dc52dc
    • Johnny Chen's avatar
      SBSection supports iteration through its subsections, represented as SBSection as well. · 5b94dc28
      Johnny Chen authored
      SBModule supports an additional SBSection iteration, besides the original SBSymbol iteration.
      Add docstrings and implement the two SBSection iteration protocols.
      
      llvm-svn: 140449
      5b94dc28
    • Greg Clayton's avatar
      Fixed build issues after recent checkin. · f644ddf4
      Greg Clayton authored
      Added the ability to get the name of the SBSection.
      
      llvm-svn: 140444
      f644ddf4
    • Greg Clayton's avatar
      Added missing file. · 64a4eaae
      Greg Clayton authored
      llvm-svn: 140442
      64a4eaae
    • Greg Clayton's avatar
      Added to the public API to allow symbolication: · cac9c5f9
      Greg Clayton authored
      - New SBSection objects that are object file sections which can be accessed
        through the SBModule classes. You can get the number of sections, get a 
        section at index, and find a section by name.
      - SBSections can contain subsections (first find "__TEXT" on darwin, then
        us the resulting SBSection to find "__text" sub section).
      - Set load addresses for a SBSection in the SBTarget interface
      - Set the load addresses of all SBSection in a SBModule in the SBTarget interface
      - Add a new module the an existing target in the SBTarget interface
      - Get a SBSection from a SBAddress object
      
      This should get us a lot closer to being able to symbolicate using LLDB through
      the public API.
      
      llvm-svn: 140437
      cac9c5f9
    • Johnny Chen's avatar
      Add an SB API SBFrame::WatchValue() and exported to the Python interface to · 6027c94d
      Johnny Chen authored
      set a watchpoint Pythonically.  If the find-and-watch-a-variable operation
      fails, an invalid SBValue is returned, instead.
      
      Example Python usage:
      
              value = frame0.WatchValue('global',
                                        lldb.eValueTypeVariableGlobal,
                                        lldb.LLDB_WATCH_TYPE_READ|lldb.LLDB_WATCH_TYPE_WRITE)
      
      Add TestSetWatchpoint.py to exercise this API.
      We have 400 test cases now.
      
      llvm-svn: 140436
      6027c94d
  12. Sep 23, 2011
  13. Sep 21, 2011
    • Jim Ingham's avatar
      Add a new breakpoint type "break by source regular expression". · 969795f1
      Jim Ingham authored
      Fix the RegularExpression class so it has a real copy constructor.
      Fix the breakpoint setting with multiple shared libraries so it makes
        one breakpoint not one per shared library.
      Add SBFileSpecList, to be used to expose the above to the SB interface (not done yet.)
      
      llvm-svn: 140225
      969795f1
  14. Sep 17, 2011
  15. Sep 16, 2011
  16. Sep 14, 2011
  17. Sep 13, 2011
  18. Sep 10, 2011
  19. Sep 09, 2011
    • Johnny Chen's avatar
      Fixed the error message: · 8a8ce4ad
      Johnny Chen authored
      ./build-swig-Python.sh: line 76: INTERFACE_FILES: command not found
      
      when running SWIG, which was introduced during the last checkin.
      
      llvm-svn: 139376
      8a8ce4ad
  20. Sep 06, 2011
    • 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
  21. Aug 23, 2011
  22. Aug 22, 2011
    • 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
  23. Aug 20, 2011
  24. 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
    • 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
  25. Aug 18, 2011
    • Sean Callanan's avatar
      Because of disassembler crashes, I rolled back · 6afe3908
      Sean Callanan authored
      LLVM to pull in the older ARM disassembler.  I
      also modified our build scripts to support
      building LLVM from one SVN revision and Clang
      from another.
      
      These are temporary measures; as soon as we
      get some solid testing in with the new ARM
      disassembler, we plan to switch right back.
      
      llvm-svn: 137965
      6afe3908
    • Enrico Granata's avatar
      First round of code cleanups: · c482a192
      Enrico Granata authored
       - all instances of "vobj" have been renamed to "valobj"
       - class Debugger::Formatting has been renamed to DataVisualization (defined in FormatManager.h/cpp)
         The interface to this class has not changed
       - FormatCategory now uses ConstString's as keys to the navigators instead of repeatedly casting
         from ConstString to const char* and back all the time
         Next step is making the same happen for categories themselves
       - category gnu-libstdc++ is defined in the constructor for a FormatManager
         The source code for it is defined in gnu_libstdcpp.py, drawn from examples/synthetic at compile time
         All references to previous 'osxcpp' name have been removed from both code and file names
      Functional changes:
       - the name of the option to use a summary string for 'type summary add' has changed from the previous --format-string
         to the new --summary-string. It is expected that the short option will change from -f to -s, and -s for --python-script
         will become -o
      
      llvm-svn: 137886
      c482a192
Loading