Skip to content
  1. May 31, 2013
    • Daniel Malea's avatar
      Use C-style include to match style in file (instead of C++ style) · c91e4ab2
      Daniel Malea authored
      - as per review comment from Dimitry Andric!
      
      llvm-svn: 183039
      c91e4ab2
    • Daniel Malea's avatar
      FreeBSD cmake build fixes. · e376a651
      Daniel Malea authored
      - missing #include <cstdlib> in Mangled.cpp
      - missing include dirs in FreeBSD CMakeLists.txt
      
      Patch by Ed Maste!
      
      llvm-svn: 183032
      e376a651
    • Enrico Granata's avatar
      <rdar://problem/14035604> · b294fd20
      Enrico Granata authored
      Fixing an issue where formats would not propagate from parents to children in all cases
      Details follow:
      an SBValue has children and those are fetched along with their values
      Now, one calls SBValue::SetFormat() on the parent
      Technically, the format choices should propagate onto the children (see ValueObject::GetFormat())
      But if the children values are already fetched, they won't notice the format change and won't update themselves
      This commit fixes that by making ValueObject::GetValueAsCString() check if any format change intervened from the previous call to the current one
      A test case is also added
      
      llvm-svn: 183030
      b294fd20
    • Enrico Granata's avatar
      Small code cleanups · 39d51410
      Enrico Granata authored
      llvm-svn: 183024
      39d51410
    • Enrico Granata's avatar
      <rdar://problem/11109316> · e0c70f1b
      Enrico Granata authored
      command script import now does reloads - for real
      If you invoke command script import foo and it detects that foo has already been imported, it will
       - invoke reload(foo) to reload the module in Python
       - re-invoke foo.__lldb_init_module
       This second step is necessary to ensure that LLDB does not keep cached copies of any formatter, command, ... that the module is providing
      
      Usual caveats with Python imports persist. Among these:
       - if you have objects lurking around, reloading the module won't magically update them to reflect changes
       - if module A imports module B, reloading A won't reload B
      These are Python-specific issues independent of LLDB that would require more extensive design work
      
      The --allow-reload (-r) option is maintained for compatibility with existing scripts, but is clearly documented as redundant - reloading is always enabled whether you use it or not
      
      llvm-svn: 182977
      e0c70f1b
  2. May 30, 2013
  3. May 24, 2013
  4. May 23, 2013
  5. May 22, 2013
  6. May 21, 2013
    • Enrico Granata's avatar
      <rdar://problem/13878726> · 397ddd5f
      Enrico Granata authored
      Yet another implementation of the python in dSYM autoload :)
      This time we are going with a ternary setting:
      true - load, do not warn
      false - do not load, do not warn
      warn - do not load, warn (default)
      
      llvm-svn: 182414
      397ddd5f
    • Enrico Granata's avatar
      s/to override/To override/ · b936b86d
      Enrico Granata authored
      Thanks to Greg Clayton for catching this
      
      llvm-svn: 182339
      b936b86d
    • Enrico Granata's avatar
      Improving the previous checkin about target.load-script-from-symbol-file · 9730339b
      Enrico Granata authored
      There are two settings:
      target.load-script-from-symbol-file is a boolean that says load or no load (default: false)
      target.warn-on-script-from-symbol-file is also a boolean, it says whether you want to be warned when a script file is not loaded due to security (default: true)
      
      the auto loading on change for target.load-script-from-symbol-file is preserved
      
      llvm-svn: 182336
      9730339b
    • Enrico Granata's avatar
      <rdar://problem/13925626> · 68ae91cf
      Enrico Granata authored
      Correctly handle the case of a ValueObjectVariable backed by a Vector
      
      llvm-svn: 182330
      68ae91cf
    • Enrico Granata's avatar
      <rdar://problem/13925626> · 0519e142
      Enrico Granata authored
      Replacing an assertion with an error - at least we won’t crash
      
      llvm-svn: 182326
      0519e142
    • Enrico Granata's avatar
      Forgot to check for empty error strings in the previous checkin · caa84cbc
      Enrico Granata authored
      llvm-svn: 182325
      caa84cbc
    • Enrico Granata's avatar
      <rdar://problem/13878726> · 84a53dfb
      Enrico Granata authored
      This changes the setting target.load-script-from-symbol-file to be a ternary enum value:
      default (the default value) will NOT load the script files but will issue a warning suggesting workarounds
      yes will load the script files
      no will not load the script files AND will NOT issue any warning
      
      if you change the setting value from default to yes, that will then cause the script files to be loaded
      (the assumption is you didn't know about the setting, got a warning, and quickly want to remedy it)
      
      if you have a settings set command for this in your lldbinit file, be sure to change "true" or "false" into an appropriate "yes" or "no" value
      
      llvm-svn: 182323
      84a53dfb
  7. May 18, 2013
    • Greg Clayton's avatar
      <rdar://problem/11398407> · 6ecb232b
      Greg Clayton authored
      Name matching was working inconsistently across many places in LLDB. Anyone doing name lookups where you want to look for all types of names should used "eFunctionNameTypeAuto" as the sole name type mask. This will ensure that we get consistent "lookup function by name" results. We had many function calls using as mask like "eFunctionNameTypeBase | eFunctionNameTypeFull | eFunctionNameTypeMethod | eFunctionNameTypeSelector". This was due to the function lookup by name evolving over time, but as it stands today, use eFunctionNameTypeAuto when you want general name lookups. Either ModuleList::FindFunctions() or Module::FindFunctions() will figure out the right kinds of names to lookup and remove the "eFunctionNameTypeAuto" and replace it with the exact subset of what the name can be.
      
      This checkin also changes eFunctionNameTypeAny over to use eFunctionNameTypeAuto to reflect this.
      
      llvm-svn: 182179
      6ecb232b
  8. May 17, 2013
  9. May 15, 2013
  10. May 13, 2013
    • Enrico Granata's avatar
      <rdar://problem/13183720> · 2ea43cdc
      Enrico Granata authored
      Provide a mechanism through which users can disable loading the Python scripts from dSYM files
      This relies on a target setting: target.load-script-from-symbol-file which defaults to false ("do NOT load the script")
      You need to set it to true before creating your target (or in your lldbinit file if you constantly rely on this feature) to allow the scripts to load
      
      llvm-svn: 181709
      2ea43cdc
  11. May 10, 2013
    • Greg Clayton's avatar
      <rdar://problem/13854277> · 57abc5d6
      Greg Clayton authored
      <rdar://problem/13594769>
      
      Main changes in this patch include:
      - cleanup plug-in interface and use ConstStrings for plug-in names
      - Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp
      - Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging
      
      The plug-in interface changes:
      
      Modified the lldb_private::PluginInterface class that all plug-ins inherit from:
      
      Changed:
      
      virtual const char * GetPluginName() = 0;
      
      To: 
      
      virtual ConstString GetPluginName() = 0;
      
      Removed:
      
      virtual const char * GetShortPluginName() = 0;
      
      - Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names. 
      - Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc.
      
      llvm-svn: 181631
      57abc5d6
  12. May 08, 2013
    • Enrico Granata's avatar
      <rdar://problem/13621080> · cc7f9bf5
      Enrico Granata authored
      This commit changes the ${function.name-with-args} prompt keyword to also tackle structs
      Previously, since aggregates have no values, this would show up as foo=(null)
      This checkin changes that to instead print foo=(Foo at 0x123) (i.e. typename at address)
      There are other potential choices here (summary, one-liner printout of all members, ...) and I would love to hear feedback about better options, if any
      
      llvm-svn: 181462
      cc7f9bf5
  13. May 06, 2013
  14. May 04, 2013
  15. May 01, 2013
    • Greg Clayton's avatar
      <rdar://problem/13700260> · 160c9d81
      Greg Clayton authored
      <rdar://problem/13723772>
      
      Modified the lldb_private::Thread to work much better with the OperatingSystem plug-ins. Operating system plug-ins can now return have a "core" key/value pair in each thread dictionary for the OperatingSystemPython plug-ins which allows the core threads to be contained with memory threads. It also allows these memory threads to be stepped, resumed, and controlled just as if they were the actual backing threads themselves.
      
      A few things are introduced:
      - lldb_private::Thread now has a GetProtocolID() method which returns the thread protocol ID for a given thread. The protocol ID (Thread::GetProtocolID()) is usually the same as the thread id (Thread::GetID()), but it can differ when a memory thread has its own id, but is backed by an actual API thread.
      - Cleaned up the Thread::WillResume() code to do the mandatory parts in Thread::ShouldResume(), and let the thread subclasses override the Thread::WillResume() which is now just a notification.
      - Cleaned up ClearStackFrames() implementations so that fewer thread subclasses needed to override them
      - Changed the POSIXThread class a bit since it overrode Thread::WillResume(). It is doing the wrong thing by calling "Thread::SetResumeState()" on its own, this shouldn't be done by thread subclasses, but the current code might rely on it so I left it in with a TODO comment with an explanation.
      
      llvm-svn: 180886
      160c9d81
  16. Apr 30, 2013
    • Sean Callanan's avatar
      RegisterValues can now report their contents as · 9b7005bf
      Sean Callanan authored
      UInts even if their contents were set as bytes.
      This makes expressions using registers work
      better, especially with core files.
      
      <rdar://problem/13743427>
      
      llvm-svn: 180810
      9b7005bf
    • Enrico Granata's avatar
      <rdar://problem/13695846> · 82fabf89
      Enrico Granata authored
      Enabling LLDB to write to variables that are stored in registers
      Previously, this would not work since the Value's Context loses the notion of the data being in a register
      We now store an "original" context that comes out of DWARF parsing, and use that context's data when attempting a write
      
      llvm-svn: 180803
      82fabf89
  17. Apr 29, 2013
    • Greg Clayton's avatar
      Cleanup logging to use the new "std::string FileSpec::GetPath()" function.... · b5ad4ec7
      Greg Clayton authored
      Cleanup logging to use the new "std::string FileSpec::GetPath()" function. Also added a similar function for modules:
      
      std::string
      Module::GetSpecificationDescription () const;
      
      This returns the module as "/usr/lib/libfoo.dylib" for normal files (calls "std::string FileSpec::GetPath()" on m_file) but it also might include the object name in case the module is for a .o file in a BSD archive ("/usr/lib/libfoo.a(bar.o)"). Cleaned up necessary logging code to use it.
      
      llvm-svn: 180717
      b5ad4ec7
  18. Apr 25, 2013
    • Greg Clayton's avatar
      <rdar://problem/13565393> · 9d49056e
      Greg Clayton authored
      If a register is in a ValueObject, be sure to print its children if it is a vector type.
      
      llvm-svn: 180237
      9d49056e
    • Greg Clayton's avatar
      Don't print the type if there is none and don't print "<invalid type>".... · 0fa5c974
      Greg Clayton authored
      Don't print the type if there is none and don't print "<invalid type>". ValueObjects can be register sets and register groups and dumping those with:
      
      (lldb) script print frame.GetRegisters()
      
      llvm-svn: 180236
      0fa5c974
    • Greg Clayton's avatar
      Added the ability to extract a ModuleSpecList (a new class) from an... · f4d6de6a
      Greg Clayton authored
      Added the ability to extract a ModuleSpecList (a new class) from an ObjectFile. This is designed to be used when you have an object file that contains one or more architectures (MacOSX universal (fat) files) and/or one or more objects (BSD archive (.a files)).
      
      There is a new static ObjectFile function you can call:
      
      size_t
      ObjectFile::GetModuleSpecifications (const FileSpec &file,
                                           lldb::offset_t file_offset,
                                           ModuleSpecList &specs)
      
      This will fill in "specs" which the details of all the module specs (file + arch + UUID (if there is one) + object name (for BSD archive objects eventually) + file offset to the object in question).
      
      This helps us when a user specifies a file that contains a single architecture, and also helps us when we are given a debug symbol file (like a dSYM file on MacOSX) that contains one or more architectures and we need to be able to match it up to an existing Module that has no debug info.
      
      llvm-svn: 180224
      f4d6de6a
  19. Apr 24, 2013
  20. Apr 22, 2013
Loading