aboutsummaryrefslogtreecommitdiffstats
path: root/passes/cmds
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-04-22 20:09:51 +0200
committerGitHub <noreply@github.com>2019-04-22 20:09:51 +0200
commit8ed4a53d99fda86468658ade665fc2a9f2faa3c4 (patch)
tree56b9ee5a9707ab6c118154bcda611ca5e3e1d8df /passes/cmds
parent1d538ff1ecdbdbae7e8e462599a4a3d9983dd60b (diff)
parente158ea20979165c1bac4c5c4027cf53255e57baa (diff)
downloadyosys-8ed4a53d99fda86468658ade665fc2a9f2faa3c4.tar.gz
yosys-8ed4a53d99fda86468658ade665fc2a9f2faa3c4.tar.bz2
yosys-8ed4a53d99fda86468658ade665fc2a9f2faa3c4.zip
Merge pull request #951 from YosysHQ/clifford/logdebug
Add log_debug() framework
Diffstat (limited to 'passes/cmds')
-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