blob: 1a0090b76ce52e537722d38ba75ecb3c57505626 [file] [log] [blame]
// Copyright 2018 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.
#pragma once
namespace zxdb {
class FormatValue;
struct FormatExprValueOptions;
class Frame;
class OutputBuffer;
class Thread;
// Outputs the list of frames to the console. This will complete asynchronously
// if the frames are not currently available. Printing of function parameter
// types is controlled by include_params.
void OutputFrameList(Thread* thread, bool include_params, bool long_format);
// Formats one frame using the short format to the output buffer. The frame ID
// will be printed if supplied. If the ID is -1, it will be omitted.
//
// Printing of function parameter types is controlled by include_params.
//
// This does not append a newline at the end of the output.
void FormatFrame(const Frame* frame, bool include_params, OutputBuffer* out,
int id = -1);
// Formats one frame using the long format. Since the long format includes
// function parameters which are computed asynchronously, this takes the
// asynchronous FormatValue as the output.
//
// This does not append a newline at the end of the output.
void FormatFrameLong(const Frame* frame, bool include_params, FormatValue* out,
const FormatExprValueOptions& options, int id = -1);
} // namespace zxdb