protected override void ProcessAttribute(Attribute attribute)
{
debug ("SUBPROG PROCESS ATTRIBUTE: {0} {1}", Offset, attribute);
switch (attribute.DwarfAttribute) {
case DwarfAttribute.low_pc:
start_pc = (long) attribute.Data;
debug ("{0}: start_pc = {1:x}", Offset, start_pc);
break;
case DwarfAttribute.high_pc:
end_pc = (long) attribute.Data;
debug ("{0}: end_pc = {1:x}", Offset, end_pc);
break;
case DwarfAttribute.name:
name = (string) attribute.Data;
debug ("{0}: name = {1}", Offset, name);
break;
case DwarfAttribute.frame_base:
frame_base = new DwarfLocation (this, attribute, false);
break;
case DwarfAttribute.decl_file:
debug ("{0}: decl_file = {1}",
Offset, (long) attribute.Data);
break;
case DwarfAttribute.decl_line:
debug ("{0}: decl_line = {1}",
Offset, (long) attribute.Data);
break;
case DwarfAttribute.inline:
debug ("{0}: inline = {1}",
Offset, (DwarfInline) (long)attribute.Data);
break;
case DwarfAttribute.abstract_origin:
abstract_origin = (long) attribute.Data;
debug ("{0} ABSTRACT ORIGIN: {1}", Offset, abstract_origin);
break;
case DwarfAttribute.specification:
specification = (long) attribute.Data;
debug ("{0} SPECIFICATION: {1}", Offset, specification);
break;
}
}