Change Target & Process so they can really be initialized with an invalid architecture. 
Arrange that this then gets properly set on attach, or when a "file" is set.
Add a completer for "process attach -n".

Caveats: there isn't currently a way to handle multiple processes with the same name.  That
will have to wait on a way to pass annotations along with the completion strings.

llvm-svn: 110624
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
index 032fb75..1568639 100644
--- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
+++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
@@ -145,6 +145,13 @@
 {
 }
 
+bool
+ObjectFileELF::IsExecutable() const
+{
+    // FIXME: How is this marked in ELF?
+    return false;
+}
+
 ByteOrder
 ObjectFileELF::GetByteOrder() const
 {
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
index 7c941a7..dcee1ad 100644
--- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
+++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
@@ -86,6 +86,9 @@
     virtual lldb::ByteOrder
     GetByteOrder() const;
 
+    virtual bool
+    IsExecutable () const;
+
     virtual size_t
     GetAddressByteSize() const;