Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Side by Side Diff: util/win/process_structs.h

Issue 1349313003: win: support x64 reading x86 (wow64) (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: . Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Crashpad Authors. All rights reserved. 1 // Copyright 2015 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 typename Traits::UnsignedIntegral MinimumStackCommit; 276 typename Traits::UnsignedIntegral MinimumStackCommit;
277 typename Traits::Pointer FlsCallback; 277 typename Traits::Pointer FlsCallback;
278 LIST_ENTRY<Traits> FlsListHead; 278 LIST_ENTRY<Traits> FlsListHead;
279 typename Traits::Pointer FlsBitmap; 279 typename Traits::Pointer FlsBitmap;
280 DWORD FlsBitmapBits[4]; 280 DWORD FlsBitmapBits[4];
281 DWORD FlsHighIndex; 281 DWORD FlsHighIndex;
282 }; 282 };
283 283
284 template <class Traits> 284 template <class Traits>
285 struct NT_TIB { 285 struct NT_TIB {
286 typename Traits::Pointer ExceptionList; 286 union {
287 typename Traits::Pointer ExceptionList;
288 // See https://msdn.microsoft.com/en-us/library/dn424783.aspx.
Mark Mentovai 2015/09/18 15:44:07 But the rest of NT_TIB isn’t right for WoW64 eithe
scottmg 2015/09/18 19:45:26 I'm not sure if it is. I think it probably has the
Mark Mentovai 2015/09/18 22:10:50 scottmg wrote:
289 typename Traits::Pointer Wow64Teb;
290 };
287 typename Traits::Pointer StackBase; 291 typename Traits::Pointer StackBase;
288 typename Traits::Pointer StackLimit; 292 typename Traits::Pointer StackLimit;
289 typename Traits::Pointer SubSystemTib; 293 typename Traits::Pointer SubSystemTib;
290 union { 294 union {
291 typename Traits::Pointer FiberData; 295 typename Traits::Pointer FiberData;
292 BYTE Version[4]; 296 BYTE Version[4];
293 }; 297 };
294 typename Traits::Pointer ArbitraryUserPointer; 298 typename Traits::Pointer ArbitraryUserPointer;
295 typename Traits::Pointer Self; 299 typename Traits::Pointer Self;
296 }; 300 };
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 LARGE_INTEGER alignment_for_x86[6]; 414 LARGE_INTEGER alignment_for_x86[6];
411 }; 415 };
412 IO_COUNTERS IoCounters; 416 IO_COUNTERS IoCounters;
413 SYSTEM_THREAD_INFORMATION<Traits> Threads[1]; 417 SYSTEM_THREAD_INFORMATION<Traits> Threads[1];
414 }; 418 };
415 419
416 // http://undocumented.ntinternals.net/source/usermode/structures/thread_basic_i nformation.html 420 // http://undocumented.ntinternals.net/source/usermode/structures/thread_basic_i nformation.html
417 template <class Traits> 421 template <class Traits>
418 struct THREAD_BASIC_INFORMATION { 422 struct THREAD_BASIC_INFORMATION {
419 union { 423 union {
420 NTSTATUS ExitStatus; 424 LONG ExitStatus;
421 typename Traits::Pad padding_for_x64_0; 425 typename Traits::Pad padding_for_x64_0;
422 }; 426 };
423 typename Traits::Pointer TebBaseAddress; 427 typename Traits::Pointer TebBaseAddress;
424 CLIENT_ID<Traits> ClientId; 428 CLIENT_ID<Traits> ClientId;
425 typename Traits::Pointer AffinityMask; 429 typename Traits::Pointer AffinityMask;
426 ULONG Priority; 430 ULONG Priority;
427 LONG BasePriority; 431 LONG BasePriority;
428 }; 432 };
429 433
434 template <class Traits>
435 struct EXCEPTION_POINTERS {
436 typename Traits::Pointer ExceptionRecord;
437 typename Traits::Pointer ContextRecord;
438 };
439
430 #pragma pack(pop) 440 #pragma pack(pop)
431 441
432 //! \} 442 //! \}
433 443
434 } // namespace process_types 444 } // namespace process_types
435 } // namespace crashpad 445 } // namespace crashpad
436 446
437 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_ 447 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_
OLDNEW
« snapshot/win/process_reader_win.cc ('K') | « util/win/process_info_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698