[lldb] Get lldb-server platform's --socket-file working again
authorRaphael Isemann <teemperor@gmail.com>
Mon, 17 Aug 2020 08:25:20 +0000 (10:25 +0200)
committerRaphael Isemann <teemperor@gmail.com>
Mon, 17 Aug 2020 08:29:06 +0000 (10:29 +0200)
`lldb-server platform --socket-file /any/path` currently always fails to create
the socket file.  This stopped working after D67424 which changed the
input variables of `writeFileAtomically` slightly. We're expected to
pass in a temporary path template (`/tmp/foo-%%%%%`) and the final
path we want to write. Instead we currently pass in the never set
`temp_file_path` as the temporary path (which will make this function always
fail) and pass in the temp_file_spec's path as the final path (which is actually
the template path such as `/tmp/foo-%%%%%`) instead of the actual path
we want to write (e.g. `/tmp/foo`).

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D85890

lldb/tools/lldb-server/lldb-platform.cpp

index 33f918f..ba3b6c5 100644 (file)
@@ -104,11 +104,12 @@ static Status save_socket_id_to_file(const std::string &socket_id,
 
   llvm::SmallString<64> temp_file_path;
   temp_file_spec.AppendPathComponent("port-file.%%%%%%");
+  temp_file_path = temp_file_spec.GetPath();
 
   Status status;
   if (auto Err =
           handleErrors(llvm::writeFileAtomically(
-                           temp_file_path, temp_file_spec.GetPath(), socket_id),
+                           temp_file_path, file_spec.GetPath(), socket_id),
                        [&status, &file_spec](const AtomicFileWriteError &E) {
                          std::string ErrorMsgBuffer;
                          llvm::raw_string_ostream S(ErrorMsgBuffer);