mirror of
https://github.com/chromium/crashpad.git
synced 2025-03-09 22:26:06 +00:00
Delete snapshot/api/module_annotations_win*
This API was added for Kasko several years ago but that project is defunct and this API does not appear to be used elsewhere. Bug: crashpad:270 Change-Id: I5a409deff7c5cf4f9f552893d4a49303f3000164 Reviewed-on: https://chromium-review.googlesource.com/c/1388022 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
This commit is contained in:
parent
cc60f9329e
commit
760da9b96a
@ -235,29 +235,6 @@ static_library("snapshot") {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (crashpad_is_win) {
|
|
||||||
static_library("snapshot_api") {
|
|
||||||
sources = [
|
|
||||||
"api/module_annotations_win.cc",
|
|
||||||
"api/module_annotations_win.h",
|
|
||||||
]
|
|
||||||
|
|
||||||
public_configs = [ "..:crashpad_config" ]
|
|
||||||
|
|
||||||
cflags = [ "/wd4201" ]
|
|
||||||
|
|
||||||
deps = [
|
|
||||||
":snapshot",
|
|
||||||
"../compat",
|
|
||||||
"../third_party/mini_chromium:base",
|
|
||||||
"../util",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
group("snapshot_api") {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fuzzer_test("elf_image_reader_fuzzer") {
|
fuzzer_test("elf_image_reader_fuzzer") {
|
||||||
sources = [
|
sources = [
|
||||||
"elf/elf_image_reader_fuzzer.cc",
|
"elf/elf_image_reader_fuzzer.cc",
|
||||||
@ -367,7 +344,6 @@ source_set("snapshot_test") {
|
|||||||
|
|
||||||
if (crashpad_is_win) {
|
if (crashpad_is_win) {
|
||||||
sources += [
|
sources += [
|
||||||
"api/module_annotations_win_test.cc",
|
|
||||||
"win/cpu_context_win_test.cc",
|
"win/cpu_context_win_test.cc",
|
||||||
"win/exception_snapshot_win_test.cc",
|
"win/exception_snapshot_win_test.cc",
|
||||||
"win/extra_memory_ranges_test.cc",
|
"win/extra_memory_ranges_test.cc",
|
||||||
@ -399,7 +375,6 @@ source_set("snapshot_test") {
|
|||||||
public_configs = [ ":snapshot_test_link" ]
|
public_configs = [ ":snapshot_test_link" ]
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":snapshot_api",
|
|
||||||
":test_support",
|
":test_support",
|
||||||
"../client",
|
"../client",
|
||||||
"../compat",
|
"../compat",
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
// Copyright 2016 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 "snapshot/api/module_annotations_win.h"
|
|
||||||
|
|
||||||
#include "snapshot/win/pe_image_annotations_reader.h"
|
|
||||||
#include "snapshot/win/pe_image_reader.h"
|
|
||||||
#include "snapshot/win/process_reader_win.h"
|
|
||||||
#include "util/misc/from_pointer_cast.h"
|
|
||||||
#include "util/win/get_module_information.h"
|
|
||||||
|
|
||||||
namespace crashpad {
|
|
||||||
|
|
||||||
bool ReadModuleAnnotations(HANDLE process,
|
|
||||||
HMODULE module,
|
|
||||||
std::map<std::string, std::string>* annotations) {
|
|
||||||
ProcessReaderWin process_reader;
|
|
||||||
if (!process_reader.Initialize(process, ProcessSuspensionState::kRunning))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
MODULEINFO module_info;
|
|
||||||
if (!CrashpadGetModuleInformation(
|
|
||||||
process, module, &module_info, sizeof(module_info))) {
|
|
||||||
PLOG(ERROR) << "CrashpadGetModuleInformation";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
PEImageReader image_reader;
|
|
||||||
if (!image_reader.Initialize(
|
|
||||||
&process_reader,
|
|
||||||
FromPointerCast<WinVMAddress>(module_info.lpBaseOfDll),
|
|
||||||
module_info.SizeOfImage,
|
|
||||||
""))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
PEImageAnnotationsReader annotations_reader(
|
|
||||||
&process_reader, &image_reader, L"");
|
|
||||||
|
|
||||||
*annotations = annotations_reader.SimpleMap();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace crashpad
|
|
@ -1,42 +0,0 @@
|
|||||||
// Copyright 2016 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.
|
|
||||||
|
|
||||||
#ifndef CRASHPAD_SNAPSHOT_API_MODULE_ANNOTATIONS_WIN_H_
|
|
||||||
#define CRASHPAD_SNAPSHOT_API_MODULE_ANNOTATIONS_WIN_H_
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#include <map>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace crashpad {
|
|
||||||
|
|
||||||
//! \brief Reads the module annotations from another process.
|
|
||||||
//!
|
|
||||||
//! \param[in] process The handle to the process that hosts the \a module.
|
|
||||||
//! Requires PROCESS_QUERY_INFORMATION and PROCESS_VM_READ accesses.
|
|
||||||
//! \param[in] module The handle to the module from which the \a annotations
|
|
||||||
//! will be read. This module should be loaded in the target process.
|
|
||||||
//! \param[out] annotations The map that will be filled with the annotations.
|
|
||||||
//! Remains unchanged if the function returns 'false'.
|
|
||||||
//!
|
|
||||||
//! \return `true` if the annotations could be read succesfully, even if the
|
|
||||||
//! module doesn't contain any annotations.
|
|
||||||
bool ReadModuleAnnotations(HANDLE process,
|
|
||||||
HMODULE module,
|
|
||||||
std::map<std::string, std::string>* annotations);
|
|
||||||
|
|
||||||
} // namespace crashpad
|
|
||||||
|
|
||||||
#endif // CRASHPAD_SNAPSHOT_API_MODULE_ANNOTATIONS_WIN_H_
|
|
@ -1,83 +0,0 @@
|
|||||||
// Copyright 2016 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 "snapshot/api/module_annotations_win.h"
|
|
||||||
|
|
||||||
#include "client/crashpad_info.h"
|
|
||||||
#include "gtest/gtest.h"
|
|
||||||
#include "test/win/win_multiprocess.h"
|
|
||||||
#include "util/file/file_io.h"
|
|
||||||
|
|
||||||
namespace crashpad {
|
|
||||||
namespace test {
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
class ModuleAnnotationsMultiprocessTest final : public WinMultiprocess {
|
|
||||||
private:
|
|
||||||
void WinMultiprocessParent() override {
|
|
||||||
// Read the child executable module.
|
|
||||||
HMODULE module = nullptr;
|
|
||||||
CheckedReadFileExactly(ReadPipeHandle(), &module, sizeof(module));
|
|
||||||
|
|
||||||
// Reopen the child process with necessary access.
|
|
||||||
HANDLE process_handle =
|
|
||||||
OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
|
|
||||||
FALSE,
|
|
||||||
GetProcessId(ChildProcess()));
|
|
||||||
EXPECT_TRUE(process_handle);
|
|
||||||
|
|
||||||
// Read the module annotations in the child process and verify them.
|
|
||||||
std::map<std::string, std::string> annotations;
|
|
||||||
ASSERT_TRUE(ReadModuleAnnotations(process_handle, module, &annotations));
|
|
||||||
|
|
||||||
EXPECT_GE(annotations.size(), 3u);
|
|
||||||
EXPECT_EQ(annotations["#APITEST# key"], "value");
|
|
||||||
EXPECT_EQ(annotations["#APITEST# x"], "y");
|
|
||||||
EXPECT_EQ(annotations["#APITEST# empty_value"], "");
|
|
||||||
|
|
||||||
// Signal the child process to terminate.
|
|
||||||
char c = ' ';
|
|
||||||
CheckedWriteFile(WritePipeHandle(), &c, sizeof(c));
|
|
||||||
}
|
|
||||||
|
|
||||||
void WinMultiprocessChild() override {
|
|
||||||
// Set some test annotations.
|
|
||||||
crashpad::CrashpadInfo* crashpad_info =
|
|
||||||
crashpad::CrashpadInfo::GetCrashpadInfo();
|
|
||||||
|
|
||||||
crashpad::SimpleStringDictionary* simple_annotations =
|
|
||||||
new crashpad::SimpleStringDictionary();
|
|
||||||
simple_annotations->SetKeyValue("#APITEST# key", "value");
|
|
||||||
simple_annotations->SetKeyValue("#APITEST# x", "y");
|
|
||||||
simple_annotations->SetKeyValue("#APITEST# empty_value", "");
|
|
||||||
|
|
||||||
crashpad_info->set_simple_annotations(simple_annotations);
|
|
||||||
|
|
||||||
// Send the executable module.
|
|
||||||
HMODULE module = GetModuleHandle(nullptr);
|
|
||||||
CheckedWriteFile(WritePipeHandle(), &module, sizeof(module));
|
|
||||||
|
|
||||||
// Wait until a signal from the parent process to terminate.
|
|
||||||
char c;
|
|
||||||
CheckedReadFileExactly(ReadPipeHandle(), &c, sizeof(c));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
TEST(ModuleAnnotationsWin, ReadAnnotations) {
|
|
||||||
WinMultiprocess::Run<ModuleAnnotationsMultiprocessTest>();
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
} // namespace test
|
|
||||||
} // namespace crashpad
|
|
@ -210,32 +210,5 @@
|
|||||||
}],
|
}],
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
'variables': {
|
|
||||||
'conditions': [
|
|
||||||
['OS == "win"', {
|
|
||||||
'snapshot_api_target_type%': 'static_library',
|
|
||||||
}, {
|
|
||||||
# There are no source files except on Windows.
|
|
||||||
'snapshot_api_target_type%': 'none',
|
|
||||||
}],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
'target_name': 'crashpad_snapshot_api',
|
|
||||||
'type': '<(snapshot_api_target_type)',
|
|
||||||
'dependencies': [
|
|
||||||
'crashpad_snapshot',
|
|
||||||
'../compat/compat.gyp:crashpad_compat',
|
|
||||||
'../third_party/mini_chromium/mini_chromium.gyp:base',
|
|
||||||
'../util/util.gyp:crashpad_util',
|
|
||||||
],
|
|
||||||
'include_dirs': [
|
|
||||||
'..',
|
|
||||||
],
|
|
||||||
'sources': [
|
|
||||||
'api/module_annotations_win.cc',
|
|
||||||
'api/module_annotations_win.h',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,6 @@
|
|||||||
'crashpad_snapshot_test_module_large',
|
'crashpad_snapshot_test_module_large',
|
||||||
'crashpad_snapshot_test_module_small',
|
'crashpad_snapshot_test_module_small',
|
||||||
'snapshot.gyp:crashpad_snapshot',
|
'snapshot.gyp:crashpad_snapshot',
|
||||||
'snapshot.gyp:crashpad_snapshot_api',
|
|
||||||
'../client/client.gyp:crashpad_client',
|
'../client/client.gyp:crashpad_client',
|
||||||
'../compat/compat.gyp:crashpad_compat',
|
'../compat/compat.gyp:crashpad_compat',
|
||||||
'../test/test.gyp:crashpad_gtest_main',
|
'../test/test.gyp:crashpad_gtest_main',
|
||||||
@ -70,7 +69,6 @@
|
|||||||
'..',
|
'..',
|
||||||
],
|
],
|
||||||
'sources': [
|
'sources': [
|
||||||
'api/module_annotations_win_test.cc',
|
|
||||||
'cpu_context_test.cc',
|
'cpu_context_test.cc',
|
||||||
'memory_snapshot_test.cc',
|
'memory_snapshot_test.cc',
|
||||||
'crashpad_info_client_options_test.cc',
|
'crashpad_info_client_options_test.cc',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user