Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
===================================================================
--- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp	(revision 155564)
+++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp	(working copy)
@@ -310,6 +310,7 @@
     response.PutCString ("name:");
     response.PutCStringAsRawHex8(proc_info.GetName());
     response.PutChar(';');
+
     const ArchSpec &proc_arch = proc_info.GetArchitecture();
     if (proc_arch.IsValid())
     {
@@ -318,7 +319,16 @@
         response.PutCStringAsRawHex8(proc_triple.getTriple().c_str());
         response.PutChar(';');
     }
+
+    if (proc_info.GetArguments().GetArgumentCount() > 0)
+    {
+        std::string args;
+        proc_info.GetArguments().GetCommandString(args);
+        response.PutCString("args:");
+        response.PutCStringAsRawHex8(args.c_str());
+        response.PutChar(';');
 }
+}
 
 bool
 GDBRemoteCommunicationServer::Handle_qProcessInfoPID (StringExtractorGDBRemote &packet)
Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
===================================================================
--- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp	(revision 155564)
+++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp	(working copy)
@@ -1415,7 +1415,14 @@
                 extractor.GetHexByteString (value);
                 process_info.GetExecutableFile().SetFile (value.c_str(), false);
             }
+            else if (name.compare("args") == 0)
+            {
+                extractor.GetStringRef().swap(value);
+                extractor.SetFilePos(0);
+                extractor.GetHexByteString (value);
+                process_info.GetArguments().SetCommandString(value.c_str());
         }
+        }
         
         if (process_info.GetProcessID() != LLDB_INVALID_PROCESS_ID)
             return true;
Index: source/Target/Process.cpp
===================================================================
--- source/Target/Process.cpp	(revision 155564)
+++ source/Target/Process.cpp	(working copy)
@@ -121,12 +121,12 @@
     if (verbose)
     {
         s.Printf     ("PID    PARENT USER       GROUP      EFF USER   EFF GROUP  TRIPLE                   %s\n", label);
-        s.PutCString ("====== ====== ========== ========== ========== ========== ======================== ============================\n");
+        s.PutCString ("====== ====== ========== ========== ========== ========== ========================= ============================\n");
     }
     else
     {
         s.Printf     ("PID    PARENT USER       ARCH    %s\n", label);
-        s.PutCString ("====== ====== ========== ======= ============================\n");
+        s.PutCString ("====== ====== ========== ======== ============================\n");
     }
 }
 
@@ -143,35 +143,35 @@
         {
             cstr = platform->GetUserName (m_uid);
             if (cstr && cstr[0]) // Watch for empty string that indicates lookup failed
-                s.Printf ("%-10s ", cstr);
+                s.Printf ("%-10.10s ", cstr);
             else
-                s.Printf ("%-10u ", m_uid);
+                s.Printf ("%-10.10u ", m_uid);
 
             cstr = platform->GetGroupName (m_gid);
             if (cstr && cstr[0]) // Watch for empty string that indicates lookup failed
-                s.Printf ("%-10s ", cstr);
+                s.Printf ("%-10.10s ", cstr);
             else
-                s.Printf ("%-10u ", m_gid);
+                s.Printf ("%-10.10u ", m_gid);
 
             cstr = platform->GetUserName (m_euid);
             if (cstr && cstr[0]) // Watch for empty string that indicates lookup failed
-                s.Printf ("%-10s ", cstr);
+                s.Printf ("%-10.10s ", cstr);
             else
-                s.Printf ("%-10u ", m_euid);
+                s.Printf ("%-10.10u ", m_euid);
             
             cstr = platform->GetGroupName (m_egid);
             if (cstr && cstr[0]) // Watch for empty string that indicates lookup failed
-                s.Printf ("%-10s ", cstr);
+                s.Printf ("%-10.10s ", cstr);
             else
-                s.Printf ("%-10u ", m_egid);
-            s.Printf ("%-24s ", m_arch.IsValid() ? m_arch.GetTriple().str().c_str() : "");
+                s.Printf ("%-10.10u ", m_egid);
+            s.Printf ("%-25.25s ", m_arch.IsValid() ? m_arch.GetTriple().str().c_str() : "");
         }
         else
         {
-            s.Printf ("%-10s %-7d %s ", 
+            const llvm::Triple::ArchType arch = m_arch.GetTriple().getArch();
+            s.Printf ("%-10.10s %-8.8s ",
                       platform->GetUserName (m_euid),
-                      (int)m_arch.GetTriple().getArchName().size(),
-                      m_arch.GetTriple().getArchName().data());
+                      llvm::Triple::getArchTypeName(arch));
         }
 
         if (verbose || show_args)
