|
From: Dennis L. <pla...@gm...> - 2003-11-11 23:17:53
|
Hello,
this is actually not a problem with valgrind, but I wonder if anyone ever
ran into such a thing, or give me any hint how to resolv it.
I have a program using a rather complex set of template classes. At one
point I have a
enum avl_tree_skew { avl_left, avl_right, avl_none = 0};
so, note the 0. The program behaves totally fine when the = 0 is not there,
but with, it behaves really really strange (Even segfault without valgrind).
Here is what valgrind says (Valgrind from HEAD, 10 mins ago)
==27046==
disInstr: unhandled instruction bytes: 0xF 0x5 0xA 0x0
at 0x4145836C: ???
==27046== Invalid read of size 1
==27046== at 0x41458214: ???
==27046== Address 0x41454D66 is 14 bytes before a block of size 20 alloc'd
==27046== at 0x4002906F: operator new(unsigned) (vg_replace_malloc.c:165)
==27046== by 0x8050D19: avltree<int, int>::add(int const&, int const&)
(../include/avlt
ree.h:124)
==27046== by 0x80509A8: main (rsaclient.cpp:29)
==27046== by 0x40386856: __libc_start_main (in /lib/libc.so.6)
==27046==
Then some other strange memory errors and a Segmentation Fault.
Ok, I have done a bit disassembly and found this :
0F 05 syscall
0A 00 or al,[eax]
but I thought syscall is for amd-64 only, not for Pentium4 / x86.
Whe I run it under gdb/ddd it tells me for the position in disassembly
(adress as displayed by bt):
0x08058ea5: test %al,0x8
All stuff strange, anyone can try an explanation, or even hint how to fix ?
greets
Dennis
Carpe quod tibi datum est
|