debug.c revision 77298
1/* This file is debug.c 2 Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992 Free Software Foundation, Inc. 3 4 This file is part of GAS, the GNU Assembler. 5 6 GAS is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 GAS is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with GAS; see the file COPYING. If not, write to 18 the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 19 20/* Routines for debug use only. */ 21 22#include "as.h" 23#include "subsegs.h" 24 25dmp_frags () 26{ 27 frchainS *chp; 28 char *p; 29 30 for (chp = frchain_root; chp; chp = chp->frch_next) 31 { 32 switch (chp->frch_seg) 33 { 34 case SEG_DATA: 35 p = "Data"; 36 break; 37 case SEG_TEXT: 38 p = "Text"; 39 break; 40 default: 41 p = "???"; 42 break; 43 } 44 printf ("\nSEGMENT %s %d\n", p, chp->frch_subseg); 45 dmp_frag (chp->frch_root, "\t"); 46 } 47} 48 49dmp_frag (fp, indent) 50 struct frag *fp; 51 char *indent; 52{ 53 for (; fp; fp = fp->fr_next) 54 { 55 printf ("%sFRAGMENT @ 0x%x\n", indent, fp); 56 switch (fp->fr_type) 57 { 58 case rs_align: 59 printf ("%srs_align(%d)\n", indent, fp->fr_offset); 60 break; 61 case rs_fill: 62 printf ("%srs_fill(%d)\n", indent, fp->fr_offset); 63 printf ("%s", indent); 64 var_chars (fp, fp->fr_var + fp->fr_fix); 65 printf ("%s\t repeated %d times,", indent, fp->fr_offset); 66 printf (" fixed length if # chars == 0)\n"); 67 break; 68 case rs_org: 69 printf ("%srs_org(%d+sym @0x%x)\n", indent, 70 fp->fr_offset, fp->fr_symbol); 71 printf ("%sfill with ", indent); 72 var_chars (fp, 1); 73 printf ("\n"); 74 break; 75 case rs_machine_dependent: 76 printf ("%smachine_dep\n", indent); 77 break; 78 default: 79 printf ("%sunknown type\n", indent); 80 break; 81 } 82 printf ("%saddr=%d(0x%x)\n", indent, fp->fr_address, fp->fr_address); 83 printf ("%sfr_fix=%d\n", indent, fp->fr_fix); 84 printf ("%sfr_var=%d\n", indent, fp->fr_var); 85 printf ("%sfr_offset=%d\n", indent, fp->fr_offset); 86 printf ("%schars @ 0x%x\n", indent, fp->fr_literal); 87 printf ("\n"); 88 } 89} 90 91var_chars (fp, n) 92 struct frag *fp; 93 int n; 94{ 95 unsigned char *p; 96 97 for (p = (unsigned char *) fp->fr_literal; n; n--, p++) 98 { 99 printf ("%02x ", *p); 100 } 101} 102 103/* end of debug.c */ 104