| OLD | NEW |
| 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 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 PointerVector<internal::MemorySnapshotWin>* into) { | 373 PointerVector<internal::MemorySnapshotWin>* into) { |
| 374 AddMemorySnapshot(us.Buffer, us.Length, into); | 374 AddMemorySnapshot(us.Buffer, us.Length, into); |
| 375 } | 375 } |
| 376 | 376 |
| 377 template <class Traits> | 377 template <class Traits> |
| 378 void ProcessSnapshotWin::AddMemorySnapshotForLdrLIST_ENTRY( | 378 void ProcessSnapshotWin::AddMemorySnapshotForLdrLIST_ENTRY( |
| 379 const process_types::LIST_ENTRY<Traits>& le, size_t offset_of_member, | 379 const process_types::LIST_ENTRY<Traits>& le, size_t offset_of_member, |
| 380 PointerVector<internal::MemorySnapshotWin>* into) { | 380 PointerVector<internal::MemorySnapshotWin>* into) { |
| 381 // Walk the doubly-linked list of entries, adding the list memory itself, as | 381 // Walk the doubly-linked list of entries, adding the list memory itself, as |
| 382 // well as pointed-to strings. | 382 // well as pointed-to strings. |
| 383 Traits::Pointer last = le.Blink; | 383 typename Traits::Pointer last = le.Blink; |
| 384 process_types::LDR_DATA_TABLE_ENTRY<Traits> entry; | 384 process_types::LDR_DATA_TABLE_ENTRY<Traits> entry; |
| 385 Traits::Pointer cur = le.Flink; | 385 typename Traits::Pointer cur = le.Flink; |
| 386 for (;;) { | 386 for (;;) { |
| 387 // |cur| is the pointer to LIST_ENTRY embedded in the LDR_DATA_TABLE_ENTRY. | 387 // |cur| is the pointer to LIST_ENTRY embedded in the LDR_DATA_TABLE_ENTRY. |
| 388 // So we need to offset back to the beginning of the structure. | 388 // So we need to offset back to the beginning of the structure. |
| 389 if (!process_reader_.ReadMemory( | 389 if (!process_reader_.ReadMemory( |
| 390 cur - offset_of_member, sizeof(entry), &entry)) { | 390 cur - offset_of_member, sizeof(entry), &entry)) { |
| 391 return; | 391 return; |
| 392 } | 392 } |
| 393 AddMemorySnapshot(cur - offset_of_member, sizeof(entry), into); | 393 AddMemorySnapshot(cur - offset_of_member, sizeof(entry), into); |
| 394 AddMemorySnapshotForUNICODE_STRING(entry.FullDllName, into); | 394 AddMemorySnapshotForUNICODE_STRING(entry.FullDllName, into); |
| 395 AddMemorySnapshotForUNICODE_STRING(entry.BaseDllName, into); | 395 AddMemorySnapshotForUNICODE_STRING(entry.BaseDllName, into); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 // ProcessLocksList.Flink. | 511 // ProcessLocksList.Flink. |
| 512 current_address = | 512 current_address = |
| 513 critical_section_debug.ProcessLocksList.Flink - | 513 critical_section_debug.ProcessLocksList.Flink - |
| 514 offsetof(process_types::RTL_CRITICAL_SECTION_DEBUG<Traits>, | 514 offsetof(process_types::RTL_CRITICAL_SECTION_DEBUG<Traits>, |
| 515 ProcessLocksList); | 515 ProcessLocksList); |
| 516 } while (current_address != start_address_forward && | 516 } while (current_address != start_address_forward && |
| 517 current_address != kInvalid); | 517 current_address != kInvalid); |
| 518 } | 518 } |
| 519 | 519 |
| 520 } // namespace crashpad | 520 } // namespace crashpad |
| OLD | NEW |