diff options
author | Fangrui Song <i@maskray.me> | 2023-07-22 16:45:32 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2023-07-22 16:45:32 -0700 |
commit | 5d66f9fd8e97c05a5dba317d3ad2566e61ead1ff (patch) | |
tree | 5252a6abab0defad569b038419c1c649c95234e8 /lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp | |
parent | 4c73549ebf171c1fa8039dc97e8fa260e824aa96 (diff) | |
download | llvm-5d66f9fd8e97c05a5dba317d3ad2566e61ead1ff.zip llvm-5d66f9fd8e97c05a5dba317d3ad2566e61ead1ff.tar.gz llvm-5d66f9fd8e97c05a5dba317d3ad2566e61ead1ff.tar.bz2 |
[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.
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
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<std::pair<llvm::StringRef, llvm::StringRef>, 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; } |