Exemplo n.º 1
0
                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;
                }
Exemplo n.º 2
0
                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);
                }
Exemplo n.º 3
0
 public void SetEngine(LineNumberEngine engine)
 {
     this.engine = engine;
     method = new DwarfTargetMethod (this, engine);
 }
Exemplo n.º 4
0
            public DwarfTargetMethod(DieSubprogram subprog, LineNumberEngine engine)
                : base(subprog.Name, subprog.ImageFile, subprog.dwarf.module)
            {
                this.subprog = subprog;
                this.engine = engine;

                CheckLoaded ();
                Name = subprog.Name;
            }
Exemplo n.º 5
0
            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;
            }