Wolfgang Thallergcc16 merge934c3885 months agoHistory
104 lines · 2.6 KB · C
RawDownload
/* This file is debug.c   Copyright (C) 1987-2026 Free Software Foundation, Inc.    This file is part of GAS, the GNU Assembler.    GAS is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 3, or (at your option)   any later version.    GAS is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.    You should have received a copy of the GNU General Public License   along with GAS; see the file COPYING.  If not, write to   the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */ /* Routines for debug use only.  */ #include "as.h"#include "subsegs.h" voiddmp_frags (void){  asection *s;  frchainS *chp;  char *p;   for (s = stdoutput->sections; s; s = s->next)    for (chp = seg_info (s)->frchainP; chp; chp = chp->frch_next)      {	switch (s)	  {	  case SEG_DATA:	    p = "Data";	    break;	  case SEG_TEXT:	    p = "Text";	    break;	  default:	    p = "???";	    break;	  }	printf ("\nSEGMENT %s %d\n", p, chp->frch_subseg);	dmp_frag (chp->frch_root, "\t");      }} voiddmp_frag (struct frag *fp, char *indent){  for (; fp; fp = fp->fr_next)    {      printf ("%sFRAGMENT @ 0x%x\n", indent, fp);      switch (fp->fr_type)	{	case rs_align:	  printf ("%srs_align(%d)\n", indent, fp->fr_offset);	  break;	case rs_fill:	  printf ("%srs_fill(%d)\n", indent, fp->fr_offset);	  printf ("%s", indent);	  var_chars (fp, fp->fr_var + fp->fr_fix);	  printf ("%s\t repeated %d times,", indent, fp->fr_offset);	  printf (" fixed length if # chars == 0)\n");	  break;	case rs_org:	  printf ("%srs_org(%d+sym @0x%x)\n", indent,		  fp->fr_offset, fp->fr_symbol);	  printf ("%sfill with ", indent);	  var_chars (fp, 1);	  printf ("\n");	  break;	case rs_machine_dependent:	  printf ("%smachine_dep\n", indent);	  break;	default:	  printf ("%sunknown type\n", indent);	  break;	}      printf ("%saddr=%d(0x%x)\n", indent, fp->fr_address, fp->fr_address);      printf ("%sfr_fix=%d\n", indent, fp->fr_fix);      printf ("%sfr_var=%d\n", indent, fp->fr_var);      printf ("%sfr_offset=%d\n", indent, fp->fr_offset);      printf ("%schars @ 0x%x\n", indent, fp->fr_literal);      printf ("\n");    }} voidvar_chars (struct frag *fp, int n){  unsigned char *p;   for (p = (unsigned char *) fp->fr_literal; n; n--, p++)    {      printf ("%02x ", *p);    }} /* end of debug.c */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t