[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sparse file check failed
From: |
Paul Eggert |
Subject: |
Re: sparse file check failed |
Date: |
Fri, 08 Dec 2006 13:04:23 -0800 |
User-agent: |
Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) |
Jim Meyering <address@hidden> writes:
> That makes me suspicious of your compiler.
Me too.
> What compiler/version/options are you using?
> Have you tried with and without optimization?
> Can you compile with a different compiler?
Or, if you really want that particular compiler combination to work,
you can see whether the instructions it generates are accurate.
On my platform, for example, I can do this:
$ gdb ./cp
(gdb) disas copy_reg
No symbol "copy_reg" in current context.
(gdb) disas copy_internal
Dump of assembler code for function copy_internal:
0x0804b500 <copy_internal+0>: push %ebp
0x0804b501 <copy_internal+1>: mov %esp,%ebp
...
or I can do this:
cd src
gcc -I. -I../lib -O2 -S copy.c
(with the same arguments I used for copy.o) and look at copy.s.
This will require some expertise. In my case copy_reg was inlined
into copy_internal, so I'm looking at over 2700 machine instructions.
But if you are familiar with low-level debugging then this will let
you know whether there's a compiler bug, and will give you something
concrete that you can report to your compiler writer.