summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Windows
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2019-10-16 11:41:59 +0300
committerMartin Storsjö <martin@martin.st>2019-11-27 10:44:42 +0200
commit344bdeb797b31bb99158010f255a7219fe77e2ec (patch)
tree79c581c577c5fcc83d0e06fb305643579eed5077 /lldb/source/Plugins/Process/Windows
parent3a280422b66a31af694782746ec0b5b7552a82a1 (diff)
downloadbcm5719-llvm-344bdeb797b31bb99158010f255a7219fe77e2ec.tar.gz
bcm5719-llvm-344bdeb797b31bb99158010f255a7219fe77e2ec.zip
[LLDB] Avoid using InitializeContext for zero-initializing a CONTEXT. NFC.
InitializeContext is useful for allocating a (potentially variable size) CONTEXT struct in an unaligned byte buffer. In this case, we already have a fixed size CONTEXT we want to initialize, and we only used this as a very roundabout way of zero initializing it. Instead just memset the CONTEXT we have, and set the ContextFlags field manually. This matches how it is done in NativeRegisterContextWindows_*.cpp. This also makes LLDB run successfully in Wine (for a trivial tested case at least), as Wine hasn't implemented the InitializeContext function. Differential Revision: https://reviews.llvm.org/D70742
Diffstat (limited to 'lldb/source/Plugins/Process/Windows')
-rw-r--r--lldb/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp11
1 files changed, 2 insertions, 9 deletions
diff --git a/lldb/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp
index 28e7a590ff9..c3cb45530f2 100644
--- a/lldb/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp
+++ b/lldb/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp
@@ -154,15 +154,8 @@ bool RegisterContextWindows::CacheAllRegisterValues() {
return true;
TargetThreadWindows &wthread = static_cast<TargetThreadWindows &>(m_thread);
- uint8_t buffer[2048];
- memset(buffer, 0, sizeof(buffer));
- PCONTEXT tmpContext = NULL;
- DWORD contextLength = (DWORD)sizeof(buffer);
- if (!::InitializeContext(buffer, kWinContextFlags, &tmpContext,
- &contextLength)) {
- return false;
- }
- memcpy(&m_context, tmpContext, sizeof(m_context));
+ memset(&m_context, 0, sizeof(m_context));
+ m_context.ContextFlags = kWinContextFlags;
if (::SuspendThread(
wthread.GetHostThread().GetNativeThread().GetSystemHandle()) ==
(DWORD)-1) {
OpenPOWER on IntegriCloud