public StatementMachine(LineNumberEngine engine, long offset, long end_offset) { this.engine = engine; this.start_offset = offset; this.end_offset = end_offset; this.st_address = 0; this.st_file = 1; this.st_line = 1; this.st_column = 0; this.is_stmt = this.engine.default_is_stmt; this.basic_block = false; this.end_sequence = false; this.prologue_end = false; this.epilogue_begin = false; this.start_file = st_file; this.const_add_pc_range = ((0xff - engine.opcode_base) / engine.line_range) * engine.minimum_insn_length; }
public FileEntry(LineNumberEngine engine, DwarfBinaryReader reader) { FileName = reader.ReadString (); Directory = reader.ReadLeb128 (); LastModificationTime = reader.ReadLeb128 (); Length = reader.ReadLeb128 (); string dir_name; if (Directory > 0) dir_name = (string) engine.include_dirs [Directory - 1]; else dir_name = engine.compilation_dir; string full_name; if (dir_name != null) full_name = Path.Combine (dir_name, FileName); else full_name = FileName; File = engine.comp_unit.dwarf.GetSourceFile (full_name); }
public void SetEngine(LineNumberEngine engine) { this.engine = engine; method = new DwarfTargetMethod (this, engine); }
public DwarfTargetMethod(DieSubprogram subprog, LineNumberEngine engine) : base(subprog.Name, subprog.ImageFile, subprog.dwarf.module) { this.subprog = subprog; this.engine = engine; CheckLoaded (); Name = subprog.Name; }
void initialize_children() { if (children_initialized) return; read_children (); children.Sort (); if (has_lines) { engine = new LineNumberEngine (this, line_offset, comp_dir); foreach (DieSubprogram subprog in children) subprog.SetEngine (engine); } children_initialized = true; }