crashpad/BUILD.gn
Scott Graham dea8fa51d0 fuchsia: Changes to allow analyzer-style exception handling
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>
2018-05-14 21:54:34 +00:00

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",
]
}
}