diff --git a/gdb-port/breakpoint-manager.py b/gdb-port/breakpoint-manager.py
index bc4314f164f7431880615ddc0afc59799857e7d8..9ec9db86e2234d1306fc4e42b1a970ad508a94b1 100644
--- a/gdb-port/breakpoint-manager.py
+++ b/gdb-port/breakpoint-manager.py
@@ -47,13 +47,16 @@ class BreakpointManager:
 	def set_h_rule_breakpoints(self):
 		for func in self.H_RULE_FUNCTIONS:
 			func_retq = self.locate_retq(func)
+			print("::: Setting breakpoint in " + func)
 			self.h_rule_breakpoints.append(HRuleBreakpoint("*" + hex(func_retq)))
 
 	def set_hammer_retq_breakpoints(self):
 		plp_retq = self.locate_retq("perform_lowlevel_parse")
+		print("::: Setting breakpoint in perform_lowlevel_parse")
 		perform_lowlevel_parse_ret = PerformLowLevelParseRetBreakpoint("*" + hex(plp_retq))
 		self.hammer_retq_breakpoints.append(perform_lowlevel_parse_ret)
 		hpp_retq = self.locate_retq("h_packrat_parse")
+		print("::: Setting breakpoint in h_packrat_parse")
 		h_packrat_parse_ret = HPackratParseRetBreakpoint("*" + hex(hpp_retq))
 		self.hammer_retq_breakpoints.append(h_packrat_parse_ret)
 		return self.hammer_retq_breakpoints
@@ -78,37 +81,69 @@ class BreakpointManager:
 		return results[0]
 
 	def set_parser_virtual_breakpoints(self):
+		print("::: parse_action")
 		self.parse_action = ParserVirtualBreakpoint("parse_action")
+		print("::: parse_choice")
 		self.parse_choice = ParserVirtualBreakpoint("parse_choice")
+		print("::: parse_sequence")
 		self.parse_sequence = ParserVirtualBreakpoint("parse_sequence")
+		print("::: parse_difference")
 		self.parse_difference = ParserVirtualBreakpoint("parse_difference")
+		print("::: parse_many")
 		self.parse_many = ParserVirtualBreakpoint("parse_many")
+		print("::: parse_and")
 		self.parse_and = ParserVirtualBreakpoint("parse_and")
+		print("::: parse_attr_bool")
 		self.parse_attr_bool = ParserVirtualBreakpoint("parse_attr_bool")
+		print("::: parse_bind")
 		self.parse_bind = ParserVirtualBreakpoint("parse_bind")
+		print("::: parse_bits")
 		self.parse_bits = ParserVirtualBreakpoint("parse_bits")
+		print("::: parse_butnot")
 		self.parse_butnot = ParserVirtualBreakpoint("parse_butnot")
+		print("::: parse_charset")
 		self.parse_charset = ParserVirtualBreakpoint("parse_charset")
+		print("::: parse_ch")
 		self.parse_ch = ParserVirtualBreakpoint("parse_ch")
+		print("::: parse_end")
 		self.parse_end = ParserVirtualBreakpoint("parse_end")
+		print("::: parse_endianness")
 		self.parse_endianness = ParserVirtualBreakpoint("parse_endianness")
+		print("::: parse_epsilon")
 		self.parse_epsilon = ParserVirtualBreakpoint("parse_epsilon")
+		print("::: parse_ignore")
 		self.parse_ignore = ParserVirtualBreakpoint("parse_ignore")
+		print("::: parse_ignoreseq")
 		self.parse_ignoreseq = ParserVirtualBreakpoint("parse_ignoreseq")
+		print("::: parse_indirect")
 		self.parse_indirect = ParserVirtualBreakpoint("parse_indirect")
+		print("::: parse_int_range")
 		self.parse_int_range = ParserVirtualBreakpoint("parse_int_range")
+		print("::: parse_not")
 		self.parse_not = ParserVirtualBreakpoint("parse_not")
+		print("::: parse_nothing")
 		self.parse_nothing = ParserVirtualBreakpoint("parse_nothing")
+		print("::: parse_optional")
 		self.parse_optional = ParserVirtualBreakpoint("parse_optional")
+		print("::: parse_permutation")
 		self.parse_permutation = ParserVirtualBreakpoint("parse_permutation")
+		print("::: parse_skip")
 		self.parse_skip = ParserVirtualBreakpoint("parse_skip")
+		print("::: parse_seek")
 		self.parse_seek = ParserVirtualBreakpoint("parse_seek")
+		print("::: parse_tell")
 		self.parse_tell = ParserVirtualBreakpoint("parse_tell")
+		print("::: parse_token")
 		self.parse_token = ParserVirtualBreakpoint("parse_token")
+		print("::: parse_unimplemented")
 		self.parse_unimplemented = ParserVirtualBreakpoint("parse_unimplemented")
+		print("::: parse_put")
 		self.parse_put = ParserVirtualBreakpoint("parse_put")
+		print("::: parse_get")
 		self.parse_get = ParserVirtualBreakpoint("parse_get")
+		print("::: parse_whitespace")
 		self.parse_whitespace = ParserVirtualBreakpoint("parse_whitespace")
+		print("::: parse_xor")
 		self.parse_xor = ParserVirtualBreakpoint("parse_xor")
 
 	def del_parser_virtual_breakpoints(self):
@@ -153,9 +188,13 @@ class BreakpointManager:
 		self.init_parser_retq.delete()
 
 	def set_hammer_breakpoints(self):
+		print("::: h_do_parse")
 		self.h_do_parse = HDoParseBreakpoint("h_do_parse")
+		print("::: h_packrat_parse")
 		self.h_packrat_parse = HPackratParseBreakpoint("h_packrat_parse")
+		print("::: perform_lowlevel_parse")
 		self.perform_lowlevel_parse = PerformLowLevelParseBreakpoint("perform_lowlevel_parse")
+		print("::: h_arena_malloc_raw")
 		self.h_arena_malloc_raw = HArenaMallocRawBreakpoint("h_arena_malloc_raw")
 
 	def del_hammer_breakpoints(self):
diff --git a/gdb-port/commands.py b/gdb-port/commands.py
index c78fd57be880fd58532a8d58f7ef31f877c761a1..453ccbe3077f31987e82d9ef7d31b96d6c676ec9 100644
--- a/gdb-port/commands.py
+++ b/gdb-port/commands.py
@@ -1,6 +1,9 @@
+print(": Registering basic commands")
+
 class HammerParserBacktrace(gdb.Command):
 	def __init__(self):
 		super(HammerParserBacktrace, self).__init__ ("hammer-parser-backtrace", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parser-backtrace")
 
 	def invoke(self, arg, from_tty):
 		parserstack = top_level_parse.peek_parserstack().p_stack
@@ -33,6 +36,7 @@ HammerParserBacktrace()
 class HammerParserMemUse(gdb.Command):
 	def __init__(self):
 		super(HammerParserMemUse, self).__init__("hammer-parser-mem-use", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parser-mem-use")
 
 	def invoke(self, arg, from_tty):
 		args = gdb.string_to_argv(arg)
@@ -54,6 +58,7 @@ HammerParserMemUse()
 class HammerParserMemUseName(gdb.Command):
 	def __init__(self):
 		super(HammerParserMemUseName, self).__init__("hammer-parser-mem-use-name", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parser-mem-use-name")
 
 	def invoke(self, arg, from_tty):
 		args = gdb.string_to_argv(arg)
@@ -72,6 +77,7 @@ HammerParserMemUseName()
 class HammerParserTopSingleArenaMem(gdb.Command):
 	def __init__(self):
 		super(HammerParserTopSingleArenaMem, self).__init__("hammer-parser-top-single-arena-mem", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parser-top-single-area-mem")
 
 	def invoke(self, arg, from_tty):
 		args = gdb.string_to_argv(arg)
@@ -84,6 +90,7 @@ HammerParserTopSingleArenaMem()
 class HammerParserTopTotalArenaMem(gdb.Command):
 	def __init__(self):
 		super(HammerParserTopTotalArenaMem, self).__init__("hammer-parser-top-total-arena-mem", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parser-top-total-arena-mem")
 
 	def invoke(self, arg, from_tty):
 		args = gdb.string_to_argv(arg)
@@ -100,6 +107,7 @@ HammerParserTopTotalArenaMem()
 class HammerParserPreviewInput(gdb.Command):
 	def __init__(self):
 		super(HammerParserPreviewInput, self).__init__("hammer-parser-preview-input", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parser-preview-input")
 
 	def invoke(self, arg, from_tty):
 		args = gdb.string_to_argv(arg)
@@ -111,6 +119,7 @@ HammerParserPreviewInput()
 class HammerParserAverageMem(gdb.Command):
 	def __init__(self):
 		super(HammerParserAverageMem, self).__init__("hammer-parser-average-mem", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parser-average-mem")
 
 	def invoke(self, arg, from_tty):
 		args = gdb.string_to_argv(arg)
@@ -124,6 +133,7 @@ HammerParserAverageMem()
 class HammerParserCurrentEnv(gdb.Command):
 	def __init__(self):
 		super(HammerParserCurrentEnv, self).__init__("hammer-parser-current-env", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parser-current-env")
 
 	def invoke(self, arg, from_tty):
 		p = top_level_parse.h_do_parse_parser
diff --git a/gdb-port/parser-name-instrumentation-gdb.py b/gdb-port/parser-name-instrumentation-gdb.py
index ec1067a227cfe67c8dfabba7bdb4dc383e35f718..a4b5d3f637d6deb5544464a5ad889cbc6519b5c8 100644
--- a/gdb-port/parser-name-instrumentation-gdb.py
+++ b/gdb-port/parser-name-instrumentation-gdb.py
@@ -400,7 +400,7 @@ class PDFMainBreakpoint(gdb.Breakpoint):
 # GDB parameters
 # TODO: hammer parameter prefix
 
-print(": Registering commands")
+print(": Registering parameters and commands")
 
 class ExtendedParseStepInfo(gdb.Parameter):
 	"""Controls whether to display parser stack and input preview on stepping the parse."""
diff --git a/gdb-port/utility-commands.py b/gdb-port/utility-commands.py
index 397b2e748481d53f3ab183b7c4aa64c8b966b3f6..ae02fba8eae20fc5195e91d469aa083e0a5d6e70 100644
--- a/gdb-port/utility-commands.py
+++ b/gdb-port/utility-commands.py
@@ -1,8 +1,11 @@
+print(": Registering utility commands")
+
 # Stops the inferior once the parse reaches (or goes past) a particular input position
 # HDoParseBreakpoint checks the position parameter to determine whether to stop execution
 class HammerParseStopAtInputPos(gdb.Command):
 	def __init__(self):
 		super(HammerParseStopAtInputPos, self).__init__ ("hammer-parse-stop-at-pos", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parse-stop-at-pos")
 
 	def invoke(self, arg, from_tty):
 		gdb.set_convenience_variable("hammer_stop_pos", int(arg))
@@ -14,6 +17,7 @@ HammerParseStopAtInputPos()
 class HammerParseStep(gdb.Command):
 	def __init__(self):
 		super(HammerParseStep, self).__init__ ("hammer-parse-step", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parse-stop")
 
 	def invoke(self, arg, from_tty):
 		args = gdb.string_to_argv(arg)
@@ -63,6 +67,7 @@ HammerParseStep()
 class HammerParseContinue(gdb.Command):
 	def __init__(self):
 		super(HammerParseContinue, self).__init__ ("hammer-parse-continue", gdb.COMMAND_OBSCURE)
+		print(":: hammer-parse-continue")
 
 	def invoke(self, arg, from_tty):
 		gdb.execute("continue")