src: Add a commands
debug flag
This commit allows setting the `commands` flag to the `debug` option, in order to have the engine write on the *debug* buffer the commands that are being executed, along with their arguments.
This commit is contained in:
parent
f9c48237a7
commit
8d24768d5d
|
@ -9,6 +9,7 @@
|
|||
#include "utils.hh"
|
||||
#include "optional.hh"
|
||||
#include "containers.hh"
|
||||
#include "buffer_utils.hh"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
|
@ -443,6 +444,16 @@ void CommandManager::execute_single_command(CommandParameters params,
|
|||
if (command_it == m_commands.end())
|
||||
throw command_not_found(params[0]);
|
||||
|
||||
const DebugFlags debug_flags = context.options()["debug"].get<DebugFlags>();
|
||||
if (debug_flags & DebugFlags::Commands)
|
||||
{
|
||||
String repr_parameters;
|
||||
|
||||
for (auto repr_param : param_view)
|
||||
repr_parameters += " " + repr_param;
|
||||
write_to_debug_buffer(format("command {}{}", params[0], repr_parameters));
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
ParametersParser parameter_parser(param_view,
|
||||
|
|
|
@ -36,22 +36,24 @@ using TimestampedList = PrefixedList<size_t, T>;
|
|||
|
||||
enum class DebugFlags
|
||||
{
|
||||
None = 0,
|
||||
Hooks = 1 << 0,
|
||||
Shell = 1 << 1,
|
||||
Profile = 1 << 2,
|
||||
Keys = 1 << 3,
|
||||
None = 0,
|
||||
Hooks = 1 << 0,
|
||||
Shell = 1 << 1,
|
||||
Profile = 1 << 2,
|
||||
Keys = 1 << 3,
|
||||
Commands = 1 << 4,
|
||||
};
|
||||
|
||||
constexpr bool with_bit_ops(Meta::Type<DebugFlags>) { return true; }
|
||||
|
||||
constexpr Array<EnumDesc<DebugFlags>, 4> enum_desc(Meta::Type<DebugFlags>)
|
||||
constexpr Array<EnumDesc<DebugFlags>, 5> enum_desc(Meta::Type<DebugFlags>)
|
||||
{
|
||||
return { {
|
||||
{ DebugFlags::Hooks, "hooks" },
|
||||
{ DebugFlags::Shell, "shell" },
|
||||
{ DebugFlags::Profile, "profile" },
|
||||
{ DebugFlags::Keys, "keys" }
|
||||
{ DebugFlags::Keys, "keys" },
|
||||
{ DebugFlags::Commands, "commands" },
|
||||
} };
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user