Skip to content

Commit

Permalink
[PATCH] Fix core files so they make sense to gdb...
Browse files Browse the repository at this point in the history
It is silly to use non-static variable for writting zeroes to the file.

And more seriously, foffset in core dump file dump function was incremented
too much, so some parts of core dump were shifted by size of few phdrs and
notes down, so although gdb was able to load that file, it did not make lot
of sense - in my test case data pages were shifted down by about 900 bytes.

Signed-off-by: Petr Vandrovec <petr@vandrovec.name>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Petr Vandrovec authored and Linus Torvalds committed Oct 15, 2006
1 parent 0b269d8 commit a7a0d86
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions fs/binfmt_elf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1220,7 +1220,7 @@ static int notesize(struct memelfnote *en)

static int alignfile(struct file *file, loff_t *foffset)
{
char buf[4] = { 0, };
static const char buf[4] = { 0, };
DUMP_WRITE(buf, roundup(*foffset, 4) - *foffset, foffset);
return 1;
}
Expand Down Expand Up @@ -1569,7 +1569,8 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file)

DUMP_WRITE(elf, sizeof(*elf));
offset += sizeof(*elf); /* Elf header */
offset += (segs+1) * sizeof(struct elf_phdr); /* Program headers */
offset += (segs + 1) * sizeof(struct elf_phdr); /* Program headers */
foffset = offset;

/* Write notes phdr entry */
{
Expand All @@ -1586,8 +1587,6 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file)
DUMP_WRITE(&phdr, sizeof(phdr));
}

foffset = offset;

dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);

/* Write program headers for segments dump */
Expand All @@ -1612,7 +1611,6 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file)
phdr.p_align = ELF_EXEC_PAGESIZE;

DUMP_WRITE(&phdr, sizeof(phdr));
foffset += sizeof(phdr);
}

#ifdef ELF_CORE_WRITE_EXTRA_PHDRS
Expand Down

0 comments on commit a7a0d86

Please sign in to comment.