LLDB: Print actual node structure [ci skip]

This commit is contained in:
yui-knk 2023-10-08 18:57:15 +09:00 коммит произвёл Yuichiro Kaneko
Родитель c3fc70cc93
Коммит 7de6908a28
1 изменённых файлов: 211 добавлений и 1 удалений

Просмотреть файл

@ -249,7 +249,217 @@ class RbInspector(LLDBInterface):
val = val.Cast(tRNode)
self._append_command_output("p (node_type) %d" % nd_type)
self._append_command_output("p *(struct RNode *) %0#x" % val.GetValueAsUnsigned())
if nd_type == self.ruby_globals["NODE_SCOPE"]:
self._append_command_output("p *(struct RNode_SCOPE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_BLOCK"]:
self._append_command_output("p *(struct RNode_BLOCK *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_IF"]:
self._append_command_output("p *(struct RNode_IF *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_UNLESS"]:
self._append_command_output("p *(struct RNode_UNLESS *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_CASE"]:
self._append_command_output("p *(struct RNode_CASE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_CASE2"]:
self._append_command_output("p *(struct RNode_CASE2 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_CASE3"]:
self._append_command_output("p *(struct RNode_CASE3 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_WHEN"]:
self._append_command_output("p *(struct RNode_WHEN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_IN"]:
self._append_command_output("p *(struct RNode_IN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_WHILE"]:
self._append_command_output("p *(struct RNode_WHILE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_UNTIL"]:
self._append_command_output("p *(struct RNode_UNTIL *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ITER"]:
self._append_command_output("p *(struct RNode_ITER *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_FOR"]:
self._append_command_output("p *(struct RNode_FOR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_FOR_MASGN"]:
self._append_command_output("p *(struct RNode_FOR_MASGN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_BREAK"]:
self._append_command_output("p *(struct RNode_BREAK *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_NEXT"]:
self._append_command_output("p *(struct RNode_NEXT *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_REDO"]:
self._append_command_output("p *(struct RNode_REDO *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_RETRY"]:
self._append_command_output("p *(struct RNode_RETRY *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_BEGIN"]:
self._append_command_output("p *(struct RNode_BEGIN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_RESCUE"]:
self._append_command_output("p *(struct RNode_RESCUE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_RESBODY"]:
self._append_command_output("p *(struct RNode_RESBODY *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ENSURE"]:
self._append_command_output("p *(struct RNode_ENSURE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_AND"]:
self._append_command_output("p *(struct RNode_AND *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_OR"]:
self._append_command_output("p *(struct RNode_OR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_MASGN"]:
self._append_command_output("p *(struct RNode_MASGN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_LASGN"]:
self._append_command_output("p *(struct RNode_LASGN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DASGN"]:
self._append_command_output("p *(struct RNode_DASGN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_GASGN"]:
self._append_command_output("p *(struct RNode_GASGN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_IASGN"]:
self._append_command_output("p *(struct RNode_IASGN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_CDECL"]:
self._append_command_output("p *(struct RNode_CDECL *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_CVASGN"]:
self._append_command_output("p *(struct RNode_CVASGN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_OP_ASGN1"]:
self._append_command_output("p *(struct RNode_OP_ASGN1 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_OP_ASGN2"]:
self._append_command_output("p *(struct RNode_OP_ASGN2 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_OP_ASGN_AND"]:
self._append_command_output("p *(struct RNode_OP_ASGN_AND *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_OP_ASGN_OR"]:
self._append_command_output("p *(struct RNode_OP_ASGN_OR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_OP_CDECL"]:
self._append_command_output("p *(struct RNode_OP_CDECL *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_CALL"]:
self._append_command_output("p *(struct RNode_CALL *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_OPCALL"]:
self._append_command_output("p *(struct RNode_OPCALL *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_FCALL"]:
self._append_command_output("p *(struct RNode_FCALL *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_VCALL"]:
self._append_command_output("p *(struct RNode_VCALL *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_QCALL"]:
self._append_command_output("p *(struct RNode_QCALL *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_SUPER"]:
self._append_command_output("p *(struct RNode_SUPER *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ZSUPER"]:
self._append_command_output("p *(struct RNode_ZSUPER *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_LIST"]:
self._append_command_output("p *(struct RNode_LIST *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ZLIST"]:
self._append_command_output("p *(struct RNode_ZLIST *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_HASH"]:
self._append_command_output("p *(struct RNode_HASH *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_RETURN"]:
self._append_command_output("p *(struct RNode_RETURN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_YIELD"]:
self._append_command_output("p *(struct RNode_YIELD *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_LVAR"]:
self._append_command_output("p *(struct RNode_LVAR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DVAR"]:
self._append_command_output("p *(struct RNode_DVAR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_GVAR"]:
self._append_command_output("p *(struct RNode_GVAR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_CONST"]:
self._append_command_output("p *(struct RNode_CONST *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_CVAR"]:
self._append_command_output("p *(struct RNode_CVAR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_NTH_REF"]:
self._append_command_output("p *(struct RNode_NTH_REF *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_BACK_REF"]:
self._append_command_output("p *(struct RNode_BACK_REF *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_MATCH"]:
self._append_command_output("p *(struct RNode_MATCH *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_MATCH2"]:
self._append_command_output("p *(struct RNode_MATCH2 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_MATCH3"]:
self._append_command_output("p *(struct RNode_MATCH3 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_LIT"]:
self._append_command_output("p *(struct RNode_LIT *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_STR"]:
self._append_command_output("p *(struct RNode_STR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DSTR"]:
self._append_command_output("p *(struct RNode_DSTR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_XSTR"]:
self._append_command_output("p *(struct RNode_XSTR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DXSTR"]:
self._append_command_output("p *(struct RNode_DXSTR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_EVSTR"]:
self._append_command_output("p *(struct RNode_EVSTR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DREGX"]:
self._append_command_output("p *(struct RNode_DREGX *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ONCE"]:
self._append_command_output("p *(struct RNode_ONCE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ARGS"]:
self._append_command_output("p *(struct RNode_ARGS *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ARGS_AUX"]:
self._append_command_output("p *(struct RNode_ARGS_AUX *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_OPT_ARG"]:
self._append_command_output("p *(struct RNode_OPT_ARG *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_KW_ARG"]:
self._append_command_output("p *(struct RNode_KW_ARG *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_POSTARG"]:
self._append_command_output("p *(struct RNode_POSTARG *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ARGSCAT"]:
self._append_command_output("p *(struct RNode_ARGSCAT *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ARGSPUSH"]:
self._append_command_output("p *(struct RNode_ARGSPUSH *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_SPLAT"]:
self._append_command_output("p *(struct RNode_SPLAT *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DEFN"]:
self._append_command_output("p *(struct RNode_DEFN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DEFS"]:
self._append_command_output("p *(struct RNode_DEFS *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ALIAS"]:
self._append_command_output("p *(struct RNode_ALIAS *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_VALIAS"]:
self._append_command_output("p *(struct RNode_VALIAS *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_UNDEF"]:
self._append_command_output("p *(struct RNode_UNDEF *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_CLASS"]:
self._append_command_output("p *(struct RNode_CLASS *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_MODULE"]:
self._append_command_output("p *(struct RNode_MODULE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_SCLASS"]:
self._append_command_output("p *(struct RNode_SCLASS *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_COLON2"]:
self._append_command_output("p *(struct RNode_COLON2 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_COLON3"]:
self._append_command_output("p *(struct RNode_COLON3 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DOT2"]:
self._append_command_output("p *(struct RNode_DOT2 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DOT3"]:
self._append_command_output("p *(struct RNode_DOT3 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_FLIP2"]:
self._append_command_output("p *(struct RNode_FLIP2 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_FLIP3"]:
self._append_command_output("p *(struct RNode_FLIP3 *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_SELF"]:
self._append_command_output("p *(struct RNode_SELF *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_NIL"]:
self._append_command_output("p *(struct RNode_NIL *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_TRUE"]:
self._append_command_output("p *(struct RNode_TRUE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_FALSE"]:
self._append_command_output("p *(struct RNode_FALSE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ERRINFO"]:
self._append_command_output("p *(struct RNode_ERRINFO *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DEFINED"]:
self._append_command_output("p *(struct RNode_DEFINED *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_POSTEXE"]:
self._append_command_output("p *(struct RNode_POSTEXE *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_DSYM"]:
self._append_command_output("p *(struct RNode_DSYM *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ATTRASGN"]:
self._append_command_output("p *(struct RNode_ATTRASGN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_LAMBDA"]:
self._append_command_output("p *(struct RNode_LAMBDA *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ARYPTN"]:
self._append_command_output("p *(struct RNode_ARYPTN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_HSHPTN"]:
self._append_command_output("p *(struct RNode_HSHPTN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_FNDPTN"]:
self._append_command_output("p *(struct RNode_FNDPTN *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_ERROR"]:
self._append_command_output("p *(struct RNode_ERROR *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_RIPPER"]:
self._append_command_output("p *(struct RNode_RIPPER *) %0#x" % val.GetValueAsUnsigned())
elif nd_type == self.ruby_globals["NODE_RIPPER_VALUES"]:
self._append_command_output("p *(struct RNode_RIPPER_VALUES *) %0#x" % val.GetValueAsUnsigned())
else:
self._append_command_output("p *(struct RNode *) %0#x" % val.GetValueAsUnsigned())
elif rval.is_type("RUBY_T_IMEMO"):
imemo_type = ((rval.flags >> self.ruby_globals["RUBY_FL_USHIFT"])