Mapping XCode lldb releases to lldb project releases.

I’m building an lldb plugin on Mac OS X and Linux using the SB API. This means downloading the right headers to build against for the level of lldb installed on the machine building the plugin.

On Linux it is trivial to work out which lldb headers to build against, you just run lldb -version and use the reported version to find the right release.

On Mac OS X the version numbers for the lldb installed by XCode are adjusted and they don’t relate directly back to the lldb releases released on llvm.org.

Xcode recently updated again and rather than find the answer via trial and error I was wondering if there is a handy table or rule for mapping the output of lldb -version on Mac back to lldb releases?

Howard Hellyer
IBM Runtime Technologies, IBM Systems
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

The contract with the SB API is that changes are only additive. So you only need to track versions if there's an API that was added at some point, and you want to make sure you have a version of the headers with that API. In practice that means you shouldn't need to keep updating the SB API's you are building against. The version that has the all API's you are using will always work against lldb's newer than when that API was added. That is, until we decide to do a SB API v. 2.0, but we'll make the same guarantees about that one, since it isn't that hard to do and makes life much simpler for everyone.

At some point, we were thinking about having an SB API versioning scheme which would allow you to detect whether the API's you are building against has some new API's (see include/lldb/lldb-versioning.h) But I don't think we ever added the necessary annotations. Presumably there wasn't any clamor for them, but I don't actually remember the story there. Greg might have more history...

Jim