diff --git a/uhdm-plugin/uhdmcommonfrontend.cc b/uhdm-plugin/uhdmcommonfrontend.cc
index b340797..a1536d4 100644
--- a/uhdm-plugin/uhdmcommonfrontend.cc
+++ b/uhdm-plugin/uhdmcommonfrontend.cc
@@ -35,7 +35,28 @@
     log("        ignore assert() statements");
     log("\n");
     log("    -debug\n");
-    log("        print debug info to stdout");
+    log("        alias for -dump_ast1 -dump_ast2 -dump_vlog1 -dump_vlog2 -yydebug\n");
+    log("\n");
+    log("    -dump_ast1\n");
+    log("        dump abstract syntax tree (before simplification)\n");
+    log("\n");
+    log("    -dump_ast2\n");
+    log("        dump abstract syntax tree (after simplification)\n");
+    log("\n");
+    log("    -no_dump_ptr\n");
+    log("        do not include hex memory addresses in dump (easier to diff dumps)\n");
+    log("\n");
+    log("    -dump_vlog1\n");
+    log("        dump ast as Verilog code (before simplification)\n");
+    log("\n");
+    log("    -dump_vlog2\n");
+    log("        dump ast as Verilog code (after simplification)\n");
+    log("\n");
+    log("    -dump_rtlil\n");
+    log("        dump generated RTLIL netlist\n");
+    log("\n");
+    log("    -yydebug\n");
+    log("        enable parser debug output\n");
     log("\n");
     log("    -report [directory]\n");
     log("        write a coverage report for the UHDM file\n");
@@ -53,8 +74,19 @@
     this->args = args;
 
     bool defer = false;
+    bool dump_ast1 = false;
+    bool dump_ast2 = false;
+    bool dump_vlog1 = false;
+    bool dump_vlog2 = false;
+    bool no_dump_ptr = false;
+    bool dump_rtlil = false;
+
     for (size_t i = 1; i < args.size(); i++) {
         if (args[i] == "-debug") {
+            dump_ast1 = true;
+            dump_ast2 = true;
+            dump_vlog1 = true;
+            dump_vlog2 = true;
             this->shared.debug_flag = true;
         } else if (args[i] == "-report" && ++i < args.size()) {
             this->report_directory = args[i];
@@ -63,6 +95,20 @@
             this->shared.no_assert = true;
         } else if (args[i] == "-defer") {
             defer = true;
+        } else if (args[i] == "-dump_ast1") {
+            dump_ast1 = true;
+        } else if (args[i] == "-dump_ast2") {
+            dump_ast2 = true;
+        } else if (args[i] == "-dump_vlog1") {
+            dump_vlog1 = true;
+        } else if (args[i] == "-dump_vlog2") {
+            dump_vlog2 = true;
+        } else if (args[i] == "-no_dump_ptr") {
+            no_dump_ptr = true;
+        } else if (args[i] == "-dump_rtlil") {
+            dump_rtlil = true;
+        } else if (args[i] == "-yydebug") {
+            this->shared.debug_flag = true;
         }
     }
     extra_args(f, filename, args, args.size() - 1);
@@ -71,15 +117,13 @@
     AST::set_line_num = &set_line_num;
     AST::get_line_num = &get_line_num;
 
-    bool dump_ast1 = this->shared.debug_flag;
-    bool dump_ast2 = this->shared.debug_flag;
     bool dont_redefine = false;
     bool default_nettype_wire = true;
 
     AST::AstNode *current_ast = parse(filename);
 
-    AST::process(design, current_ast, dump_ast1, dump_ast2, false, false, false, false, false, false, false, false, false, false, false, false, false,
-                 false, dont_redefine, false, defer, default_nettype_wire);
+    AST::process(design, current_ast, dump_ast1, dump_ast2, no_dump_ptr, dump_vlog1, dump_vlog2, dump_rtlil, false, false, false, false, false, false,
+                 false, false, false, false, dont_redefine, false, defer, default_nettype_wire);
     delete current_ast;
 }
 
