aboutsummaryrefslogtreecommitdiffstats
path: root/passes/cmds/trace.cc
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-04-22 17:25:52 +0200
committerClifford Wolf <clifford@clifford.at>2019-04-22 17:25:52 +0200
commite158ea20979165c1bac4c5c4027cf53255e57baa (patch)
tree5533f340e6add8bffcb680a2ac033d9448066f53 /passes/cmds/trace.cc
parentc0f9a74b121dd19e359038b6f6f76be0ffe3cc38 (diff)
downloadyosys-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.cc34
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