[Lldb-commits] [PATCH] D70442: [LLDB] Force message formatting to English

Alexandre Ganea via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Nov 19 07:26:44 PST 2019


aganea created this revision.
aganea added reviewers: asmith, aleksandr.urakov.
aganea added a project: LLDB.
Herald added a subscriber: lldb-commits.

This is a follow-up on D53092 <https://reviews.llvm.org/D53092>, and fixes the test below on non-English locales (below, on a French locale):

  [ RUN      ] StatusTest.ErrorWin32
  F:\llvm-project\lldb\unittests\Utility\StatusTest.cpp(67): error:       Expected: "Access is denied. "
  To be equal to: s.AsCString()
        Which is: "Acc\xE8s refus\xE9. "
  F:\llvm-project\lldb\unittests\Utility\StatusTest.cpp(70): error:       Expected: "Negotiation timed out "
  To be equal to: s.AsCString()
        Which is: "Le d\xE9lai d\x92" "attente a expir\xE9 pour la n\xE9gociation "
  [  FAILED  ] StatusTest.ErrorWin32 (2 ms)


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D70442

Files:
  lldb/source/Utility/Status.cpp


Index: lldb/source/Utility/Status.cpp
===================================================================
--- lldb/source/Utility/Status.cpp
+++ lldb/source/Utility/Status.cpp
@@ -100,14 +100,23 @@
   char *buffer = nullptr;
   std::string message;
   // Retrieve win32 system error.
+  // First, attempt to load a en-US message
   if (::FormatMessageA(
           FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
               FORMAT_MESSAGE_MAX_WIDTH_MASK,
-          NULL, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+          NULL, error_code, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
           (LPSTR)&buffer, 0, NULL)) {
     message.assign(buffer);
     ::LocalFree(buffer);
   }
+  // If the previous didn't work, use the default OS language
+  else if (::FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+                                FORMAT_MESSAGE_FROM_SYSTEM |
+                                FORMAT_MESSAGE_MAX_WIDTH_MASK,
+                            NULL, error_code, 0, (LPSTR)&buffer, 0, NULL)) {
+    message.assign(buffer);
+    ::LocalFree(buffer);
+  }
   return message;
 }
 #endif


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D70442.230071.patch
Type: text/x-patch
Size: 1138 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20191119/a3e3a964/attachment.bin>


More information about the lldb-commits mailing list