From 96d7950b55eea7365c6324bbe03e29cd7645c08e Mon Sep 17 00:00:00 2001 From: Steve Chamberlain Date: Fri, 7 Jun 1991 01:33:38 +0000 Subject: [PATCH] When disassembling, now prints ... instead of pages of whatever the instruction for 0x0000 is. --- binutils/objdump.c | 58 +++++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/binutils/objdump.c b/binutils/objdump.c index f3af0a7ad63..9f98756f0e7 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -261,7 +261,7 @@ bfd *abfd; unsigned long m; asection *section; /* Replace symbol section relative values with abs values */ - + boolean done_dot = false; for (i = 0; i < symcount; i++) { if (syms[i]->section != (asection *)NULL) { @@ -338,36 +338,46 @@ bfd *abfd; i = 0; while (i size) { - if (with_line_numbers) { - static prevline; - CONST char *filename; - CONST char *functionname; - unsigned int line; - bfd_find_nearest_line(abfd, - section, - syms, - section->vma + i, - &filename, - &functionname, - &line); - - if (filename && functionname && line && line != prevline) { - printf("%s:%u\n", filename, line); - prevline = line; + if (data[i] ==0 && data[i+1] == 0 && data[i+2] == 0 && + data[i+3] == 0) { + if (done_dot == false) { + printf("...\n"); + done_dot=true; } + i+=4; } - print_address(section->vma + i, stdout); - printf(" "); + else { + done_dot = false; + if (with_line_numbers) { + static prevline; + CONST char *filename; + CONST char *functionname; + unsigned int line; + bfd_find_nearest_line(abfd, + section, + syms, + section->vma + i, + &filename, + &functionname, + &line); + + if (filename && functionname && line && line != prevline) { + printf("%s:%u\n", filename, line); + prevline = line; + } + } + print_address(section->vma + i, stdout); + printf(" "); - i += print(section->vma + i, - data + i, - stdout); - putchar ('\n') ; + i += print(section->vma + i, + data + i, + stdout); + putchar ('\n') ; + } } - free(data); } } -- 2.30.2