public virtual void show_segment(List <Hunk> hunk, List <List <Hunk> > seg_list) { var main = hunk[0]; // unit hunks are named var name = ""; if (main.Name != null) { name = String.Format("'{0}'", main.Name); } var type_name = main.HunkType.ToString().Replace("HUNK_", ""); var size = main.size; var hunk_no = main.hunk_no; uint data_file_offset = 0; if (main is TextHunk) { data_file_offset = ((TextHunk)main).data_file_offset; } var hunk_file_offset = main.FileOffset; var alloc_size = (main.alloc_size != 0) ? main.alloc_size : 0; this.print_segment_header(hunk_no, type_name, size, name, data_file_offset, hunk_file_offset, alloc_size); if (this.hexdump) { print_hex(main.Data, indent: 8); } foreach (var extra in hunk.Skip(1)) { this.show_extra_hunk(extra); } // index hunk info is embedded if its in a lib if (main.index_hunk != null) { this.show_index_info(main.index_hunk); } if (main.HunkType == HunkType.HUNK_CODE && this.disassemble && main.Data.Length > 0) { var disas = new HunkDisassembler(this.use_objdump, this.cpu); Console.WriteLine(); disas.show_disassembly(hunk, seg_list, this.disassemble_start); Console.WriteLine(); } }
public virtual void show_segment(List<Hunk> hunk, List<List<Hunk>> seg_list) { var main = hunk[0]; // unit hunks are named var name = ""; if (main.Name != null) { name = String.Format("'{0}'", main.Name); } var type_name = main.HunkType.ToString().Replace("HUNK_", ""); var size = main.size; var hunk_no = main.hunk_no; uint data_file_offset = 0; if (main is TextHunk) { data_file_offset = ((TextHunk) main).data_file_offset; } var hunk_file_offset = main.FileOffset; var alloc_size = (main.alloc_size != 0) ? main.alloc_size : 0; this.print_segment_header(hunk_no, type_name, size, name, data_file_offset, hunk_file_offset, alloc_size); if (this.hexdump) { print_hex(main.Data, indent: 8); } foreach (var extra in hunk.Skip(1)) { this.show_extra_hunk(extra); } // index hunk info is embedded if its in a lib if (main.index_hunk != null) { this.show_index_info(main.index_hunk); } if (main.HunkType == HunkType.HUNK_CODE && this.disassemble && main.Data.Length > 0) { var disas = new HunkDisassembler(this.use_objdump, this.cpu); Console.WriteLine(); disas.show_disassembly(hunk, seg_list, this.disassemble_start); Console.WriteLine(); } }