OLD | NEW |
1 // Copyright 2014 Google Inc. All Rights Reserved. | 1 // Copyright 2014 Google Inc. 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 DEPRECATED_ASAN_FEATURE_ENABLE_KASKO | | 107 DEPRECATED_ASAN_FEATURE_ENABLE_KASKO | |
108 DEPRECATED_ASAN_FEATURE_ENABLE_CRASHPAD; | 108 DEPRECATED_ASAN_FEATURE_ENABLE_CRASHPAD; |
109 | 109 |
110 // Store the information that we want to report about a block. | 110 // Store the information that we want to report about a block. |
111 // TODO(sebmarchand): Rename this to avoid the confusion with the BlockInfo | 111 // TODO(sebmarchand): Rename this to avoid the confusion with the BlockInfo |
112 // structure? | 112 // structure? |
113 struct AsanBlockInfo { | 113 struct AsanBlockInfo { |
114 // The address of the header for this block. | 114 // The address of the header for this block. |
115 const void* header; | 115 const void* header; |
116 // The user size of the block. | 116 // The user size of the block. |
117 size_t user_size : 30; | 117 size_t user_size; |
118 // This is implicitly a BlockState value. | 118 // This is implicitly a BlockState value. |
119 size_t state : 2; | 119 uint8_t state; |
120 // The ID of the allocation thread. | 120 // The ID of the allocation thread. |
121 DWORD alloc_tid; | 121 DWORD alloc_tid; |
122 // The ID of the free thread. | 122 // The ID of the free thread. |
123 DWORD free_tid; | 123 DWORD free_tid; |
124 // The result of a block analysis on this block. | 124 // The result of a block analysis on this block. |
125 BlockAnalysisResult analysis; | 125 BlockAnalysisResult analysis; |
126 // The allocation stack trace. | 126 // The allocation stack trace. |
127 void* alloc_stack[agent::common::StackCapture::kMaxNumFrames]; | 127 void* alloc_stack[agent::common::StackCapture::kMaxNumFrames]; |
128 // The free stack trace. | 128 // The free stack trace. |
129 void* free_stack[agent::common::StackCapture::kMaxNumFrames]; | 129 void* free_stack[agent::common::StackCapture::kMaxNumFrames]; |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 return reinterpret_cast<void*>(context.Rip); | 322 return reinterpret_cast<void*>(context.Rip); |
323 #else | 323 #else |
324 return reinterpret_cast<void*>(context.Eip); | 324 return reinterpret_cast<void*>(context.Eip); |
325 #endif | 325 #endif |
326 } | 326 } |
327 | 327 |
328 } // namespace asan | 328 } // namespace asan |
329 } // namespace agent | 329 } // namespace agent |
330 | 330 |
331 #endif // SYZYGY_AGENT_ASAN_ERROR_INFO_H_ | 331 #endif // SYZYGY_AGENT_ASAN_ERROR_INFO_H_ |
OLD | NEW |