diff options
author | Clifford Wolf <clifford@clifford.at> | 2019-04-22 17:25:52 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2019-04-22 17:25:52 +0200 |
commit | e158ea20979165c1bac4c5c4027cf53255e57baa (patch) | |
tree | 5533f340e6add8bffcb680a2ac033d9448066f53 /passes/cmds/trace.cc | |
parent | c0f9a74b121dd19e359038b6f6f76be0ffe3cc38 (diff) | |
download | yosys-e158ea20979165c1bac4c5c4027cf53255e57baa.tar.gz yosys-e158ea20979165c1bac4c5c4027cf53255e57baa.tar.bz2 yosys-e158ea20979165c1bac4c5c4027cf53255e57baa.zip |
Add log_debug() framework
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'passes/cmds/trace.cc')
-rw-r--r-- | passes/cmds/trace.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/passes/cmds/trace.cc b/passes/cmds/trace.cc index f5305cde9..cf3e46ace 100644 --- a/passes/cmds/trace.cc +++ b/passes/cmds/trace.cc @@ -94,4 +94,38 @@ struct TracePass : public Pass { } } TracePass; +struct DebugPass : public Pass { + DebugPass() : Pass("debug", "run command with debug log messages enabled") { } + void help() YS_OVERRIDE + { + // |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---| + log("\n"); + log(" debug cmd\n"); + log("\n"); + log("Execute the specified command with debug log messages enabled\n"); + log("\n"); + } + void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE + { + size_t argidx; + for (argidx = 1; argidx < args.size(); argidx++) + { + // .. parse options .. + break; + } + + log_force_debug++; + + try { + std::vector<std::string> new_args(args.begin() + argidx, args.end()); + Pass::call(design, new_args); + } catch (...) { + log_force_debug--; + throw; + } + + log_force_debug--; + } +} DebugPass; + PRIVATE_NAMESPACE_END |