/* * Copyright (c) 2020, Itamar S. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "Debugger.h" #include #include #include #include #include #include #include #include #include #include #include namespace HackStudio { class DebugInfoWidget final : public GUI::Widget { C_OBJECT(DebugInfoWidget) public: virtual ~DebugInfoWidget() override { } void update_state(const Debug::DebugSession&, const PtraceRegisters&); void program_stopped(); void set_debug_actions_enabled(bool enabled); private: explicit DebugInfoWidget(); void init_toolbar(); NonnullRefPtr build_variables_tab(); NonnullRefPtr build_registers_tab(); bool does_variable_support_writing(const Debug::DebugInfo::VariableInfo*); RefPtr get_context_menu_for_variable(const GUI::ModelIndex&); RefPtr m_variables_view; RefPtr m_registers_view; RefPtr m_backtrace_view; RefPtr m_variable_context_menu; RefPtr m_toolbar; RefPtr m_continue_action; RefPtr m_singlestep_action; RefPtr m_step_in_action; RefPtr m_step_out_action; }; }