Skip to content
  1. Jun 05, 2013
  2. Jun 04, 2013
    • Enrico Granata's avatar
      <rdar://problem/14003462> · 983920d1
      Enrico Granata authored
      Formatters for unsigned char* and const variant
      
      llvm-svn: 183254
      983920d1
    • Greg Clayton's avatar
    • Greg Clayton's avatar
      Make sure a core file has thread contexts before we try and load it. · 9645e82c
      Greg Clayton authored
      llvm-svn: 183252
      9645e82c
    • Greg Clayton's avatar
      Fixed printf build warning. · e86cef63
      Greg Clayton authored
      llvm-svn: 183250
      e86cef63
    • Greg Clayton's avatar
      <rdar://problem/13941992> · a3f14d8b
      Greg Clayton authored
      Accept mach-o files with bad segments. Many core files are not created correctly and we should still be able to glean any information we can from them.
      
      llvm-svn: 183247
      a3f14d8b
    • Enrico Granata's avatar
      <rdar://problem/13988982> · 2e35cb75
      Enrico Granata authored
      LLDB API versioning
      This checkin makes the LLDB API versioned
      We are starting at version 1.0 and will then revise and update the API from there
      Further details:
       API versioning
      ---------------------------------
      
      The LLDB API is versioned independently of the LLDB source base
      Our API version numbers are composed of a major and a minor number
      
      The major number means a complete and stable revision of the API. Major numbers are compatibility breakers
      (i.e. when we change the API major number, there is no promise of compatibility with the previous major version
       and we are free to remove and/or change any APIs)
      Minor numbers are a work-in-progress evolution of the API. APIs will not be removed or changed across minor versions
      (minors do not break compatibility). However, we can deprecate APIs in minor versions or add new APIs in minor versions
      A deprecated API is supposedly going to be removed in the next major version and will generate a warning if used
      APIs we add in minor versions will not be removed (at least until the following major) but they might theoretically be deprecated
      in a following minor version
      Users are discouraged from using the LLDB version number to test for API features and should instead use the API version checking
      as discussed below
      
       API version checking
      ---------------------------------
      
      You can (optionally) sign into an API version checking feature
      To do so you need to define three macros:
      LLDB_API_CHECK_VERSIONING - define to any value (or no value)
      LLDB_API_MAJOR_VERSION_WANTED - which major version of the LLDB API you are targeting
      LLDB_API_MINOR_VERSION_WANTED - which minor version of the LLDB API you are targeting
      
      If these macros exist - LLDB will enable version checking of the public API
      
      If LLDB_API_MAJOR_VERSION is not equal to LLDB_API_MAJOR_VERSION_WANTED we will immediately halt your compilation with an error
      This is by design, since we do not make any promise of compatibility across major versions - if you really want to test your luck, disable the versioning altogether
      
      If the major version test passes, you have signed up for a specific minor version of the API
      Whenever we add or deprecate an API in a minor version, we will mark it with either
      LLDB_API_NEW_IN_DOT_x - this API is new in LLDB .x
      LLDB_API_DEPRECATED_IN_DOT_x - this API is deprecated as of .x
      
      If you are using an API new in DOT_x
       if LLDB_API_MINOR_VERSION_WANTED >= x then all is well, else you will get a compilation error
        This is meant to prevent you from using APIs that are newer than whatever LLDB you want to target
      
      If you are using an API deprecated in DOT_x
       if LLDB_API_MINOR_VERSION_WANTED >= x then you will get a compilation warning, else all is well
       This is meant to let you know that you are using an API that is deprecated and might go away
      
       Caveats
      ---------------------------------
      
      Version checking only works on clang on OSX - you will get an error if you try to enable it on any other OS/compiler
      If you want to enable version checking on other platforms, you will need to define appropriate implementations for
      LLDB_API_IMPL_DEPRECATED and LLDB_API_IMPL_TOONEW and any other infrastructure your compiler needs for this purpose
      
      We have no deprecation-as-error mode
      
      There is no support for API versioning in Python
      
      We reserve to use macros whose names begin with LLDB_API_ and you should not use them in your source code as they might conflict
      with present or future macro names we are using to implement versioning
      
      
      For API implementors:
      If you need to add a new public API call, please remember to add the LLDB_API_NEW_IN_DOT_x marker in the header file
      and when you are done with adding stuff, to also update LLDB_API_MINOR_VERSION
      If you want to remove a function, deprecate it first, by using LLDB_API_DEPRECATED_IN_DOT_x
      and when you are done with deprecating stuff, to also update LLDB_API_MINOR_VERSION
      A new major version (LLDB_API_MAJOR_VERSION++) is your only chance to remove and/or change API calls
      but is probably quite a big deal and you might want to consider deprecating the existing calls for a while
      before doing your changes
      
      A couple more caveats:
      Currently, the lldb-tool does NOT use the version checking feature. It would be a nice future improvement to make it do that, once we have proper version checking on other OSs
      APIs marked as deprecated by a comment in the source are still deprecated just that way. A good purpose for API 1.1 might be to deprecate them with appropriate markers
      
      llvm-svn: 183244
      2e35cb75
    • Daniel Malea's avatar
      More minor FreeBSD fixes. · 6f0a5edb
      Daniel Malea authored
      - link libexecinfo (as libc is missing backtrace())
      - enable FreeBSD-specific plugins
      
      Patch by Ed Maste!
      
      llvm-svn: 183233
      6f0a5edb
    • Jim Ingham's avatar
      If ThreadPlanCallFunction hasn't set its notion of the "real stop info" yet,... · 60c4118c
      Jim Ingham authored
      If ThreadPlanCallFunction hasn't set its notion of the "real stop info" yet, just return the current PrivateStopInfo.
      
      Also renamed a few more places where we were using StopReason in functions that were returning StopInfo's.
      
      <rdar://problem/14042692>
      
      llvm-svn: 183177
      60c4118c
  3. Jun 03, 2013
  4. Jun 01, 2013
  5. May 31, 2013
    • Daniel Malea's avatar
      Skipping test case for clang 3.4 due to llvm.org/pr16191 · fac51ab5
      Daniel Malea authored
      - should resolve remaining buildbot issues with debian/clang builder
      
      llvm-svn: 183044
      fac51ab5
    • 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
      CMake FreeBSD fix: add missing Process plugin directory · 132c4a26
      Daniel Malea authored
      Patch by Ed Maste!
      
      llvm-svn: 183038
      132c4a26
    • Han Ming Ong's avatar
      <rdar://problem/13752848> · 79371cee
      Han Ming Ong authored
      Add 'JoinExistingSession' to XPC for root debugging.
      
      llvm-svn: 183037
      79371cee
    • 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
    • Sean Callanan's avatar
      Fixed value evaluation to handle null constants. · 7d01ddd6
      Sean Callanan authored
      <rdar://problem/14005311>
      
      llvm-svn: 183022
      7d01ddd6
    • Enrico Granata's avatar
      An NSData with 0 bytes in it would report a summary of “0 byte” · 1c333d07
      Enrico Granata authored
      Making sure that I get my English right by saying “0 bytes” instead
      
      llvm-svn: 182978
      1c333d07
    • 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
    • Enrico Granata's avatar
      Adding a diagnose-nsstring command · a5c0308b
      Enrico Granata authored
      This should help us figure out issues with the NSString data formatter
      
      llvm-svn: 182972
      a5c0308b
Loading