From 5d66f9fd8e97c05a5dba317d3ad2566e61ead1ff Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Sat, 22 Jul 2023 16:45:32 -0700 Subject: [gdb-remote] Sort entries in QEnvironment* Similar to ae316ac66ffff430997e342772fc4629c1acece0 for QEMU_(UN)SET_ENV. The iteration order of StringMap is not guaranteed to be deterministic. Sort the entries to give deterministic packets for the tests added by D108018. --- .../Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp') diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp index 36e046d..c650312 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp @@ -35,6 +35,7 @@ #include "lldb/Host/Config.h" #include "lldb/Utility/StringExtractorGDBRemote.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/Support/JSON.h" @@ -826,8 +827,12 @@ llvm::Error GDBRemoteCommunicationClient::LaunchProcess(const Args &args) { } int GDBRemoteCommunicationClient::SendEnvironment(const Environment &env) { - for (const auto &KV : env) { - int r = SendEnvironmentPacket(Environment::compose(KV).c_str()); + llvm::SmallVector, 0> vec; + for (const auto &kv : env) + vec.emplace_back(kv.first(), kv.second); + llvm::sort(vec, llvm::less_first()); + for (const auto &[k, v] : vec) { + int r = SendEnvironmentPacket((k + "=" + v).str().c_str()); if (r != 0) return r; } -- cgit v1.1