Index: snapshot/win/process_reader_win.cc |
diff --git a/snapshot/win/process_reader_win.cc b/snapshot/win/process_reader_win.cc |
index 20e17ed93959463ddc50df960a8aedadbe8dd9fd..a7665c293aaae99ec34c03dd41f81e230c34aa06 100644 |
--- a/snapshot/win/process_reader_win.cc |
+++ b/snapshot/win/process_reader_win.cc |
@@ -177,7 +177,8 @@ bool FillThreadContextAndSuspendCount(HANDLE thread_handle, |
ProcessReaderWin::Thread::Thread() |
: context(), |
id(0), |
- teb(0), |
+ teb_address(0), |
+ teb_size(0), |
stack_region_address(0), |
stack_region_size(0), |
suspend_count(0), |
@@ -332,8 +333,9 @@ void ProcessReaderWin::ReadThreadData(bool is_64_reading_32) { |
// Read the TIB (Thread Information Block) which is the first element of the |
// TEB, for its stack fields. |
process_types::NT_TIB<Traits> tib; |
- thread.teb = thread_basic_info.TebBaseAddress; |
- if (ReadMemory(thread.teb, sizeof(tib), &tib)) { |
+ thread.teb_address = thread_basic_info.TebBaseAddress; |
+ thread.teb_size = sizeof(process_types::TEB<Traits>); |
+ if (ReadMemory(thread.teb_address, sizeof(tib), &tib)) { |
WinVMAddress base = 0; |
WinVMAddress limit = 0; |
// If we're reading a WOW64 process, then the TIB we just retrieved is the |
@@ -341,8 +343,10 @@ void ProcessReaderWin::ReadThreadData(bool is_64_reading_32) { |
// https://msdn.microsoft.com/en-us/library/dn424783.aspx |
if (is_64_reading_32) { |
process_types::NT_TIB<process_types::internal::Traits32> tib32; |
- thread.teb = tib.Wow64Teb; |
- if (ReadMemory(thread.teb, sizeof(tib32), &tib32)) { |
+ thread.teb_address = tib.Wow64Teb; |
+ thread.teb_size = |
+ sizeof(process_types::TEB<process_types::internal::Traits32>); |
+ if (ReadMemory(thread.teb_address, sizeof(tib32), &tib32)) { |
base = tib32.StackBase; |
limit = tib32.StackLimit; |
} |