Lines Matching refs:die
158 def debug_die(die, text): argument
159 lp_header = die.dwarfinfo.line_program_for_CU(die.cu).header
163 fileinfo = files[die.attributes["DW_AT_decl_file"].value - 1]
168 lineno = die.attributes["DW_AT_decl_line"].value
170 debug(str(die))
358 def die_get_spec(die): argument
359 if 'DW_AT_specification' not in die.attributes:
362 spec_val = die.attributes["DW_AT_specification"].value
365 offset = spec_val + die.cu.cu_offset
370 def die_get_name(die): argument
371 if 'DW_AT_name' not in die.attributes:
372 die = die_get_spec(die)
373 if not die:
376 return die.attributes["DW_AT_name"].value.decode("utf-8")
379 def die_get_type_offset(die): argument
380 if 'DW_AT_type' not in die.attributes:
381 die = die_get_spec(die)
382 if not die:
385 return die.attributes["DW_AT_type"].value + die.cu.cu_offset
388 def die_get_byte_size(die): argument
389 if 'DW_AT_byte_size' not in die.attributes:
392 return die.attributes["DW_AT_byte_size"].value
395 def analyze_die_struct(die): argument
396 name = die_get_name(die) or "<anon>"
397 offset = die.offset
398 size = die_get_byte_size(die)
414 for child in die.iter_children():
431 def analyze_die_const(die): argument
432 type_offset = die_get_type_offset(die)
436 type_env[die.offset] = ConstType(type_offset)
439 def analyze_die_array(die): argument
440 type_offset = die_get_type_offset(die)
443 for child in die.iter_children():
472 type_env[die.offset] = ArrayType(die.offset, elements, type_offset)
474 type_env[die.offset] = ArrayType(die.offset, elements, type_offset)
477 def analyze_typedef(die): argument
478 type_offset = die_get_type_offset(die)
483 type_env[die.offset] = type_env[type_offset]
546 for die in CU.iter_DIEs():
550 if die.tag == "DW_TAG_structure_type":
551 analyze_die_struct(die)
552 elif die.tag == "DW_TAG_const_type":
553 analyze_die_const(die)
554 elif die.tag == "DW_TAG_array_type":
555 analyze_die_array(die)
556 elif die.tag == "DW_TAG_typedef":
557 analyze_typedef(die)
558 elif die.tag == "DW_TAG_variable":
559 variables.append(die)
575 for die in variables:
576 name = die_get_name(die)
584 type_offset = die_get_type_offset(die)
591 if "DW_AT_declaration" in die.attributes:
593 extern_env[die.offset] = die
596 if "DW_AT_location" not in die.attributes:
597 debug_die(die,
602 loc = die.attributes["DW_AT_location"]
604 debug_die(die, "kernel object '%s' unexpected location format" %
613 debug_die(die, "kernel object '%s' found on stack" % name)
615 debug_die(die,