[swift-dev] [swift-lldb-dev] LLDB Invalid address (32 bit arm)

William Dillon william at housedillon.com
Mon Jan 4 11:45:49 CST 2016


> On Jan 4, 2016, at 9:17 AM, Todd Fiala <tfiala at apple.com> wrote:
> 
> I added some more comments to the pull request that I Think is related to this thread here:
> https://github.com/apple/swift-lldb/pull/3 <https://github.com/apple/swift-lldb/pull/3>
> 
> The archspec changes really need to happen in llvm.org <http://llvm.org/> lldb svn trunk and need to be put up for patch review there (along with any discussion particular to that).  The rest of the change (for 32-bit support specific to Swift LLDB) looked fine. If we get that separated out again, I’ll be happy to get that in.
> 

That sounds good.

To summarize how changes in these three projects link together:

there is some code in swift that tries to canonicalize armv6l and armv7l into just ‘armv6’ and ‘armv7’ respectively.  This was suggested by Dmitri and Tim.  However, armv6l isn’t represented in llvm, and I’m working on bringing my patch there up to standards.  However, this canonicalization only applies to compilation, not the REPL.  Joe Bell figured out that LLDB was being passed armv6l and armv7l and it didn’t know what to do with them.  He fixed that by adding them to lldb.  The correct approach seems to be performing the same transformation for the REPL as for compilation, and therefore the other proposed changes to LLDB are inappropriate.  I’ll back those out as Todd suggested.

I want to do these operations in such a way that Joe always has a set of repos that will build functioning binaries for ARM because he’s been great at releasing updates as other parts of swift for linux mature.  To that end, I’ll figure out the changes necessary to swift’s invocation of LLDB and submit a PR for that.  Then, I’ll back-out the changes to LLDB.  The changes to LLVM can happen any time.

Apologies for any incoherencies, I’ve got a cold at the moment. :)

- Will

>> On Jan 4, 2016, at 9:00 AM, Dmitri Gribenko via swift-lldb-dev <swift-lldb-dev at swift.org <mailto:swift-lldb-dev at swift.org>> wrote:
>> 
>> On Mon, Jan 4, 2016 at 6:50 PM, Todd Fiala via swift-lldb-dev <swift-lldb-dev at swift.org <mailto:swift-lldb-dev at swift.org>> wrote:
>> 
>>> On Dec 28, 2015, at 10:39 AM, William Dillon via swift-lldb-dev <swift-lldb-dev at swift.org <mailto:swift-lldb-dev at swift.org>> wrote:
>>> 
>>> Hi Todd,
>>> 
>>> Yes, I think that LLDB is more or less working with Swift on ARM.  We can start the REPL and do some tasks with it, though it isn’t all that reliable yet.
>> 
>> I’d love to hear about the reliability piece if you have more details there!
>> 
>>>  There are two files in the swift-lldb PR that I merged in from Joe Bell that fixed the REPL.  I think, however, than they would need to go to the lldb.llvm.org <http://lldb.llvm.org/> repo, rather than the swift one.
>> 
>> I think I’ve seen the llvm.org <http://llvm.org/> side of that patch.  Somebody else and I had a question about some static casts in there, but we’ll catch up on that side if it is the same patch I’m thinking about.
>> 
>>>  There is a question about that, though.  Joe added armv7l into the ArchSpec table, but I don’t think that armv7l is a real subtype.  I’ve been very confused by the ARM nomenclature on linux (I don’t think I’m alone here), and I think that armv7l means armv7 little endian.  So, should these get converted to armv7 somewhere else and revert the changes to the ArchSpec table?
>> 
>> This is a great question that I am not the right resource to answer.  Greg or Jason, any thoughts here on question of arm subtypes?  (My first take is that I’d expect each subtype to represent a different set of features and instructions available, and not be used solely for an endianness designation, but that’s not an area I do much work in).
>>  
>> We have discussed this before with Tim Northover, and he suggested that we canonicalize armv7l to armv7 when parsing the triple from the command line.
>> 
>> Dmitri
>> 
>> -- 
>> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
>> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com <mailto:gribozavr at gmail.com>>*/
>>  _______________________________________________
>> swift-lldb-dev mailing list
>> swift-lldb-dev at swift.org <mailto:swift-lldb-dev at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-lldb-dev <https://lists.swift.org/mailman/listinfo/swift-lldb-dev>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20160104/7135a041/attachment.html>


More information about the swift-dev mailing list