| // 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 |