mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-28 15:50:26 +08:00
dea8fa51d0
The integration into the Fuchsia tree is still being negotiated, but I've added crashsvc on that side https://fuchsia.googlesource.com/zircon/+/HEAD/system/core/crashsvc/crashsvc.cpp, which handles exceptions and spawns something to actually deal with the crashed process. This means that there's no resident thing, so it seems simplest to use handler/crash_report_exception_handler directly, rather than add another wrapper binary. At some point it may make sense to roll this functionality back into Crashpad upstream, we'll see how it evolves. Additionally, the "normal" crashpad_handler model may still be necessary if Chrome wants to use a copy locally (rather than the system handler). To accomplish this: - Split crashpad_handler and crashpad_database_util packages so crashpad_database_util can still be included into the system image for debugging. - Add handle-based version of HandleException() to CrashReportExceptionHandler (and also remove the "type" argument because I've come around to realizing there's no point to it, finally. :) Bug: crashpad:196 Change-Id: I38872183ee3691c0938c5b761e6b73c80019f355 Reviewed-on: https://chromium-review.googlesource.com/1057833 Reviewed-by: Joshua Peraza <jperaza@chromium.org> Commit-Queue: Scott Graham <scottmg@chromium.org>
167 lines
4.1 KiB
Plaintext
167 lines
4.1 KiB
Plaintext
# Copyright 2017 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.
|
|
|
|
import("build/crashpad_buildconfig.gni")
|
|
import("build/test.gni")
|
|
|
|
config("crashpad_config") {
|
|
include_dirs = [ "." ]
|
|
}
|
|
|
|
if (crashpad_is_in_chromium || crashpad_is_in_fuchsia) {
|
|
test("crashpad_tests") {
|
|
deps = [
|
|
"client:client_test",
|
|
"handler:handler_test",
|
|
"minidump:minidump_test",
|
|
"snapshot:snapshot_test",
|
|
"test:gmock_main",
|
|
"test:test_test",
|
|
"util:util_test",
|
|
]
|
|
}
|
|
|
|
if (crashpad_is_in_fuchsia) {
|
|
import("//build/package.gni")
|
|
package("crashpad_test") {
|
|
testonly = true
|
|
deprecated_system_image = true
|
|
|
|
deps = [
|
|
":crashpad_tests",
|
|
"snapshot:crashpad_snapshot_test_both_dt_hash_styles(//build/toolchain/fuchsia:$current_cpu-shared)",
|
|
"snapshot:crashpad_snapshot_test_module(//build/toolchain/fuchsia:$current_cpu-shared)",
|
|
"snapshot:crashpad_snapshot_test_module_large(//build/toolchain/fuchsia:$current_cpu-shared)",
|
|
"snapshot:crashpad_snapshot_test_module_small(//build/toolchain/fuchsia:$current_cpu-shared)",
|
|
"test:crashpad_test_test_multiprocess_exec_test_child",
|
|
"util:http_transport_test_server",
|
|
]
|
|
|
|
tests = [
|
|
{
|
|
name = "crashpad_tests"
|
|
},
|
|
{
|
|
name = "crashpad_test_test_multiprocess_exec_test_child"
|
|
dest = "crashpad_test_data/crashpad_test_test_multiprocess_exec_test_child"
|
|
},
|
|
{
|
|
name = "http_transport_test_server"
|
|
dest = "crashpad_test_data/http_transport_test_server"
|
|
},
|
|
]
|
|
|
|
libraries = [
|
|
{
|
|
name = "crashpad_snapshot_test_both_dt_hash_styles.so"
|
|
},
|
|
{
|
|
name = "crashpad_snapshot_test_module.so"
|
|
},
|
|
{
|
|
name = "crashpad_snapshot_test_module_large.so"
|
|
},
|
|
{
|
|
name = "crashpad_snapshot_test_module_small.so"
|
|
},
|
|
]
|
|
|
|
resources = [
|
|
{
|
|
path = rebase_path("util/net/testdata/ascii_http_body.txt")
|
|
dest = "crashpad_test_data/util/net/testdata/ascii_http_body.txt"
|
|
},
|
|
{
|
|
path = rebase_path("util/net/testdata/binary_http_body.dat")
|
|
dest = "crashpad_test_data/util/net/testdata/binary_http_body.dat"
|
|
},
|
|
{
|
|
path = rebase_path("test/test_paths_test_data_root.txt")
|
|
dest = "crashpad_test_data/test/test_paths_test_data_root.txt"
|
|
},
|
|
]
|
|
}
|
|
|
|
package("crashpad_handler") {
|
|
deprecated_system_image = true
|
|
|
|
deps = [
|
|
"handler:crashpad_handler",
|
|
]
|
|
|
|
binaries = [
|
|
{
|
|
name = "crashpad_handler"
|
|
},
|
|
]
|
|
}
|
|
|
|
package("crashpad_database_util") {
|
|
deprecated_system_image = true
|
|
|
|
deps = [
|
|
"tools:crashpad_database_util",
|
|
]
|
|
|
|
binaries = [
|
|
{
|
|
name = "crashpad_database_util"
|
|
},
|
|
]
|
|
}
|
|
}
|
|
} else if (crashpad_is_standalone) {
|
|
test("crashpad_client_test") {
|
|
deps = [
|
|
"client:client_test",
|
|
"test:gmock_main",
|
|
]
|
|
}
|
|
|
|
test("crashpad_handler_test") {
|
|
deps = [
|
|
"handler:handler_test",
|
|
"test:gtest_main",
|
|
]
|
|
}
|
|
|
|
test("crashpad_minidump_test") {
|
|
deps = [
|
|
"minidump:minidump_test",
|
|
"test:gtest_main",
|
|
]
|
|
}
|
|
|
|
test("crashpad_snapshot_test") {
|
|
deps = [
|
|
"snapshot:snapshot_test",
|
|
"test:gtest_main",
|
|
]
|
|
}
|
|
|
|
test("crashpad_test_test") {
|
|
deps = [
|
|
"test:gmock_main",
|
|
"test:test_test",
|
|
]
|
|
}
|
|
|
|
test("crashpad_util_test") {
|
|
deps = [
|
|
"test:gmock_main",
|
|
"util:util_test",
|
|
]
|
|
}
|
|
}
|