 Chromium Code Reviews
 Chromium Code Reviews Issue 1355503005:
  win: Make reading CrashpadInfo work across bitness  (Closed) 
  Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
    
  
    Issue 1355503005:
  win: Make reading CrashpadInfo work across bitness  (Closed) 
  Base URL: https://chromium.googlesource.com/crashpad/crashpad@master| Index: snapshot/win/crashpad_snapshot_test_simple_annotations.cc | 
| diff --git a/snapshot/win/crashpad_snapshot_test_simple_annotations.cc b/snapshot/win/crashpad_snapshot_test_simple_annotations.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..10518085b64ffe8ae00fbd67104a7c0a34d3ef31 | 
| --- /dev/null | 
| +++ b/snapshot/win/crashpad_snapshot_test_simple_annotations.cc | 
| @@ -0,0 +1,55 @@ | 
| +// Copyright 2015 The Crashpad Authors. All rights reserved. | 
| +// | 
| +// Licensed under the Apache License, Version 2.0 (the "License"); | 
| +// you may not use this file except in compliance with the License. | 
| +// You may obtain a copy of the License at | 
| +// | 
| +// http://www.apache.org/licenses/LICENSE-2.0 | 
| +// | 
| +// Unless required by applicable law or agreed to in writing, software | 
| +// distributed under the License is distributed on an "AS IS" BASIS, | 
| +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
| +// See the License for the specific language governing permissions and | 
| +// limitations under the License. | 
| + | 
| +#include <windows.h> | 
| + | 
| +#include "base/logging.h" | 
| +#include "client/crashpad_info.h" | 
| +#include "util/file/file_io.h" | 
| + | 
| +int wmain(int argc, wchar_t* argv[]) { | 
| + crashpad::CrashpadInfo* crashpad_info = | 
| + crashpad::CrashpadInfo::GetCrashpadInfo(); | 
| + | 
| + // This is "leaked" to crashpad_info. | 
| + crashpad::SimpleStringDictionary* simple_annotations = | 
| + new crashpad::SimpleStringDictionary(); | 
| + simple_annotations->SetKeyValue("#TEST# pad", "break"); | 
| + simple_annotations->SetKeyValue("#TEST# key", "value"); | 
| + simple_annotations->SetKeyValue("#TEST# pad", "crash"); | 
| + simple_annotations->SetKeyValue("#TEST# x", "y"); | 
| + simple_annotations->SetKeyValue("#TEST# longer", "shorter"); | 
| + simple_annotations->SetKeyValue("#TEST# empty_value", ""); | 
| + | 
| + crashpad_info->set_simple_annotations(simple_annotations); | 
| + | 
| + // Tell the parent that the environment has been set up. | 
| + HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE); | 
| + PCHECK(out != INVALID_HANDLE_VALUE) << "GetStdHandle"; | 
| + char c = ' '; | 
| + crashpad::CheckedWriteFile(out, &c, sizeof(c)); | 
| + | 
| + HANDLE in = GetStdHandle(STD_INPUT_HANDLE); | 
| + PCHECK(in != INVALID_HANDLE_VALUE) << "GetStdHandle"; | 
| + crashpad::CheckedReadFile(in, &c, sizeof(c)); | 
| + CHECK(c == 'd' || c == ' '); | 
| + | 
| + // If 'd' we crash with a debug break, otherwise exit normally. | 
| + if (c == 'd') | 
| + __debugbreak(); | 
| + | 
| + return 0; | 
| +} | 
| + | 
| 
Mark Mentovai
2015/09/22 13:17:29
Lose the blank lines at EOF.
 
scottmg
2015/09/22 17:25:59
Done.
 | 
| + |