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

Side by Side Diff: util/win/process_info_test_child.cc

Issue 1369833002: win: Gather memory information (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@save-peb-stuff
Patch Set: . Created 5 years, 2 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 | « util/win/process_info_test.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
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 #include <intrin.h>
15 #include <stdlib.h> 16 #include <stdlib.h>
17 #include <stdint.h>
16 #include <wchar.h> 18 #include <wchar.h>
17 #include <windows.h> 19 #include <windows.h>
18 20
19 // A simple binary to be loaded and inspected by ProcessInfo. 21 // A simple binary to be loaded and inspected by ProcessInfo.
20 int wmain(int argc, wchar_t** argv) { 22 int wmain(int argc, wchar_t** argv) {
21 if (argc != 3) 23 if (argc != 2)
22 abort(); 24 abort();
23 25
24 // Get handles to the events we use to communicate with our parent. 26 // Get a handle to the event we use to communicate with our parent.
25 HANDLE started_event = CreateEvent(nullptr, true, false, argv[1]); 27 HANDLE done_event = CreateEvent(nullptr, true, false, argv[1]);
26 HANDLE done_event = CreateEvent(nullptr, true, false, argv[2]); 28 if (!done_event)
27 if (!started_event || !done_event)
28 abort(); 29 abort();
29 30
30 // Load an unusual module (that we don't depend upon) so we can do an 31 // Load an unusual module (that we don't depend upon) so we can do an
31 // existence check. 32 // existence check.
32 if (!LoadLibrary(L"lz32.dll")) 33 if (!LoadLibrary(L"lz32.dll"))
33 abort(); 34 abort();
34 35
35 if (!SetEvent(started_event)) 36 HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
37 if (out == INVALID_HANDLE_VALUE)
36 abort(); 38 abort();
39 // We just want any valid address that's known to be code.
40 uint64_t code_address = reinterpret_cast<uint64_t>(_ReturnAddress());
41 DWORD bytes_written;
42 if (!WriteFile(
43 out, &code_address, sizeof(code_address), &bytes_written, nullptr) ||
44 bytes_written != sizeof(code_address)) {
45 abort();
46 }
37 47
38 if (WaitForSingleObject(done_event, INFINITE) != WAIT_OBJECT_0) 48 if (WaitForSingleObject(done_event, INFINITE) != WAIT_OBJECT_0)
39 abort(); 49 abort();
40 50
41 CloseHandle(done_event); 51 CloseHandle(done_event);
42 CloseHandle(started_event);
43 52
44 return EXIT_SUCCESS; 53 return EXIT_SUCCESS;
45 } 54 }
OLDNEW
« no previous file with comments | « util/win/process_info_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698