|
From: Nicholas N. <nj...@ca...> - 2004-03-17 10:49:43
|
On Wed, 17 Mar 2004, John Carter wrote: > I suspect the code concerned is a bit of assembler in eCos (Embedded > Configurable Operating System) thus the debug info / symbol table > might be rather strange. I would be content to suppress just that > exact address, no matter what the call stack looked like. Unfortunately Valgrind has no support for address-only suppressions. In general I would think they would not be reliable, since recompiling a program can move code around. Is it possible to compile the assembly code with debugging info, or manually insert some? (not sure if you can do that) > ==3150== Syscall param sigaction(act) contains uninitialised or unaddressablebyte(s) > > The #0 frame is an assembler chunk that just invokes the sigaction syscall. > .globl cyg_hal_sys_sigaction; > > cyg_hal_sys_sigaction: > push %ebx; > mov 8(%esp), %ebx; > mov 12(%esp), %ecx; > mov 16(%esp), %edx; > lea 67, %eax; > int $0x80; > pop %ebx; > ret; > .type cyg_hal_sys_sigaction,@function ; .size cyg_hal_sys_sigaction,1b - cyg_hal_sys_sigaction > > Curiously enough I have checked, every field passed in is > initialised and is on the stack. I think the "sigaction(act)" error means that the pointed-to struct is uninitialised/unaddressable, rather than the pointer itself. N |