|
From: Jeremy F. <je...@go...> - 2005-03-21 23:10:24
|
Klint Gore wrote: >attached is version numbers, valgrind output, ldd on program, gbd >backtrace, strace. > >The binary is at http://abri.une.edu.au/staff/klint/hello.bz2 > > Ah, OK. This isn't actually a correctly formed executable: Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align PHDR 0x000034 0x08048034 0x08048034 0x000a0 0x000a0 R E 0x4 INTERP 0x0000d4 0x080480d4 0x080480d4 0x00013 0x00013 R 0x1 [Requesting program interpreter: /lib/ld-linux.so.2] LOAD 0x000000 0x08048000 0x08048000 0x06230 0x106230 R E 0x1000 ^^^^^^^ ^^^^^^^^ ^ LOAD 0x006230 0x0814f230 0x0814f230 0x00b50 0x01640 RW 0x1000 DYNAMIC 0x006cf8 0x0814fcf8 0x0814fcf8 0x00088 0x00088 RW 0x4 The segment at 0x08048000 is mapped read-only, but it has a file size smaller than the memory size; the space between these two is defined to be zeroed. However, because it is read-only, Valgrind crashes when trying to zero it. The kernel has a special workaround to deal with Kylix binaries by ignoring errors on that zero operation, but usermode code can't easily do that. I'll need to think about the nicest way to solve this (lobby Borland to generate proper executables would be a good start). Could you file a bug for this? J |