| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SRC_DEVELOPER_DEBUG_ZXDB_CLIENT_EXCEPTION_SETTINGS_H_ |
| #define SRC_DEVELOPER_DEBUG_ZXDB_CLIENT_EXCEPTION_SETTINGS_H_ |
| |
| #include <vector> |
| |
| #include "src/developer/debug/ipc/protocol.h" |
| #include "src/developer/debug/ipc/records.h" |
| #include "src/developer/debug/zxdb/common/err_or.h" |
| |
| namespace zxdb { |
| |
| // Two-to-three character shorthands for exception types. |
| constexpr char kGeneralExcpTypeShorthand[] = "gen"; |
| constexpr char kPageFaultExcpTypeShorthand[] = "pf"; |
| constexpr char kUndefinedInstructionExcpTypeShorthand[] = "ui"; |
| constexpr char kUnalignedAccessExcpTypeShorthand[] = "ua"; |
| constexpr char kPolicyErrorExcpTypeShorthand[] = "pe"; |
| |
| // Returns kNone if the shorthand is not recognized. |
| debug_ipc::ExceptionType ToExceptionType(const std::string& shorthand); |
| |
| // Given a list of exception type shorthands, this utility returns the list of |
| // request objects to update the strategies of those types as second-chance |
| // and their complement as first-chance. |
| ErrOr<std::vector<debug_ipc::UpdateGlobalSettingsRequest::UpdateExceptionStrategy>> |
| ParseExceptionStrategyUpdates(const std::vector<std::string>& second_chance_shorthands); |
| |
| } // namespace zxdb |
| |
| #endif // SRC_DEVELOPER_DEBUG_ZXDB_CLIENT_EXCEPTION_SETTINGS_H_ |