blob: ea43499e903962a91ff4943e655cbf52dae7c050 [file]
// Copyright 2020 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_STOP_INFO_H_
#define SRC_DEVELOPER_DEBUG_ZXDB_CLIENT_STOP_INFO_H_
#include "src/developer/debug/ipc/records.h"
#include "src/lib/fxl/memory/weak_ptr.h"
namespace zxdb {
class Breakpoint;
// Information on a thread stop notification.
struct StopInfo {
uint64_t timestamp = 0;
debug_ipc::ExceptionType exception_type = debug_ipc::ExceptionType::kNone;
debug_ipc::ExceptionRecord exception_record;
// Breakpoints at this address. There can be more than one breakpoint at the same address.
//
// These are weak poiners because there can be multiple observers and certain observers might
// remove breakpoints in response to the notification, leaving it null for later observers.
std::vector<fxl::WeakPtr<Breakpoint>> hit_breakpoints;
};
} // namespace zxdb
#endif // SRC_DEVELOPER_DEBUG_ZXDB_CLIENT_STOP_INFO_H_