diff --git a/gdb-port/parser-type-instrumentation-gdb.py b/gdb-port/parser-type-instrumentation-gdb.py
index e234409858945cce9538be980e99e3dd1921491b..fd46ec383c655db2be0152b80a86affdb84810d4 100644
--- a/gdb-port/parser-type-instrumentation-gdb.py
+++ b/gdb-port/parser-type-instrumentation-gdb.py
@@ -126,7 +126,7 @@ class ButNotEnv(HParserEnv):
 	def __str__(self):
 		return str([str(self.p1), str(self.p2)])
 
-class ActionEnv:
+class ActionEnv(HParserEnv):
 	def __init__(self, parser, top_level_parse):
 		self.parser = parser
 
@@ -136,11 +136,14 @@ class ActionEnv:
 
 		# should return a HAction
 		action = gdb.parse_and_eval("((HParseAction*) parser->env)->action");
-		self.action = action
+		self.action = int(action)
 		user_data_p = gdb.parse_and_eval("(HParseAction*) parser->env)->user_data");
-		self.user_data_p = user_data_p
+		self.user_data_p = int(user_data_p)
 
-class AndEnv:
+	def __str__(self):
+		return str([str(self.member_parser), str(hex(self.action)), str(hex(self.user_data_p))])
+
+class AndEnv(HParserEnv):
 	def __init__(self, parser, top_level_parse):
 		self.parser = parser
 
@@ -148,6 +151,9 @@ class AndEnv:
 		parser_obj = top_level_parse.add_or_get_parser(member_parser_p)
 		self.member_parser = parser_obj
 
+	def __str__(self):
+		return str([str(self.member_parser)]))
+
 class ChEnv(HParserEnv):
 	def __init__(self, parser, top_level_parse):
 		self.parser = parser