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

Side by Side Diff: minidump/minidump_context.h

Issue 883773005: win: Work towards getting 'minidump' to compile (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@crash-report-db-win
Patch Set: more mucking around Created 5 years, 10 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
« no previous file with comments | « compat/win/sys/types.h ('k') | minidump/minidump_context_writer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 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,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and 12 // See the License for the specific language governing permissions and
13 // limitations under the License. 13 // limitations under the License.
14 14
15 #ifndef CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_ 15 #ifndef CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_
16 #define CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_ 16 #define CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_
17 17
18 #include <stdint.h> 18 #include <stdint.h>
19 19
20 #include "base/compiler_specific.h"
20 #include "snapshot/cpu_context.h" 21 #include "snapshot/cpu_context.h"
21 #include "util/numeric/int128.h" 22 #include "util/numeric/int128.h"
22 23
23 namespace crashpad { 24 namespace crashpad {
24 25
25 //! \brief Architecture-independent flags for `context_flags` fields in Minidump 26 //! \brief Architecture-independent flags for `context_flags` fields in Minidump
26 //! context structures. 27 //! context structures.
27 // 28 //
28 // http://zachsaw.blogspot.com/2010/11/wow64-bug-getthreadcontext-may-return.htm l#c5639760895973344002 29 // http://zachsaw.blogspot.com/2010/11/wow64-bug-getthreadcontext-may-return.htm l#c5639760895973344002
29 enum MinidumpContextFlags : uint32_t { 30 enum MinidumpContextFlags : uint32_t {
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 uint32_t cs; 181 uint32_t cs;
181 uint32_t eflags; 182 uint32_t eflags;
182 uint32_t esp; 183 uint32_t esp;
183 uint32_t ss; 184 uint32_t ss;
184 185
185 // CPUContextX86::Fxsave has identical layout to what the x86 CONTEXT 186 // CPUContextX86::Fxsave has identical layout to what the x86 CONTEXT
186 // structure places here. 187 // structure places here.
187 CPUContextX86::Fxsave fxsave; 188 CPUContextX86::Fxsave fxsave;
188 }; 189 };
189 190
190 //! \brief x86_64-specifc flags for MinidumpContextAMD64::context_flags. 191 //! \brief x86_64-specific flags for MinidumpContextAMD64::context_flags.
191 enum MinidumpContextAMD64Flags : uint32_t { 192 enum MinidumpContextAMD64Flags : uint32_t {
192 //! \brief Identifies the context structure as x86_64. This is the same as 193 //! \brief Identifies the context structure as x86_64. This is the same as
193 //! `CONTEXT_AMD64` on Windows for this architecture. 194 //! `CONTEXT_AMD64` on Windows for this architecture.
194 kMinidumpContextAMD64 = 0x00100000, 195 kMinidumpContextAMD64 = 0x00100000,
195 196
196 //! \brief Indicates the validity of control registers (`CONTEXT_CONTROL`). 197 //! \brief Indicates the validity of control registers (`CONTEXT_CONTROL`).
197 //! 198 //!
198 //! The `cs`, `ss`, `eflags`, `rsp`, and `rip` fields are valid. 199 //! The `cs`, `ss`, `eflags`, `rsp`, and `rip` fields are valid.
199 kMinidumpContextAMD64Control = kMinidumpContextAMD64 | 0x00000001, 200 kMinidumpContextAMD64Control = kMinidumpContextAMD64 | 0x00000001,
200 201
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 //! file. 247 //! file.
247 //! 248 //!
248 //! This is analogous to the `CONTEXT` structure on Windows when targeting 249 //! This is analogous to the `CONTEXT` structure on Windows when targeting
249 //! x86_64. This structure is used instead of `CONTEXT` to make it available 250 //! x86_64. This structure is used instead of `CONTEXT` to make it available
250 //! when targeting other architectures. 251 //! when targeting other architectures.
251 //! 252 //!
252 //! \note This structure doesn’t carry `dr4` or `dr5`, which are obsolete and 253 //! \note This structure doesn’t carry `dr4` or `dr5`, which are obsolete and
253 //! normally alias `dr6` and `dr7`, respectively. See Intel Software 254 //! normally alias `dr6` and `dr7`, respectively. See Intel Software
254 //! Developer’s Manual, Volume 3B: System Programming, Part 2 (253669-052), 255 //! Developer’s Manual, Volume 3B: System Programming, Part 2 (253669-052),
255 //! 17.2.2 “Debug Registers DR4 and DR5”. 256 //! 17.2.2 “Debug Registers DR4 and DR5”.
256 struct __attribute__((aligned(16))) MinidumpContextAMD64 { 257 struct ALIGNAS(16) MinidumpContextAMD64 {
257 //! \brief Register parameter home address. 258 //! \brief Register parameter home address.
258 //! 259 //!
259 //! On Windows, this field may contain the “home” address (on-stack, in the 260 //! On Windows, this field may contain the “home” address (on-stack, in the
260 //! shadow area) of a parameter passed by register. This field is present for 261 //! shadow area) of a parameter passed by register. This field is present for
261 //! convenience but is not necessarily populated, even if a corresponding 262 //! convenience but is not necessarily populated, even if a corresponding
262 //! parameter was passed by register. 263 //! parameter was passed by register.
263 //! 264 //!
264 //! \{ 265 //! \{
265 uint64_t p1_home; 266 uint64_t p1_home;
266 uint64_t p2_home; 267 uint64_t p2_home;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 uint64_t last_branch_to_rip; 335 uint64_t last_branch_to_rip;
335 uint64_t last_branch_from_rip; 336 uint64_t last_branch_from_rip;
336 uint64_t last_exception_to_rip; 337 uint64_t last_exception_to_rip;
337 uint64_t last_exception_from_rip; 338 uint64_t last_exception_from_rip;
338 //! \} 339 //! \}
339 }; 340 };
340 341
341 } // namespace crashpad 342 } // namespace crashpad
342 343
343 #endif // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_ 344 #endif // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_
OLDNEW
« no previous file with comments | « compat/win/sys/types.h ('k') | minidump/minidump_context_writer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698