I get segmentation fault accessing an object which looks valid and fully accessible in gdb. Isn’t segmentation is always about inaccessible memory?
EDIT: more details.
The crash happend under gdb so I could examine the object’s memory. It had the members set to proper values so there is no chance I was accessing read-only memory. The instruction where crashed happed is kind of Var = Obj.GetMember() where Var, GetMember and the corresponding member are short integers.
Misalignment? I suppose it would cause bus error, not segmentation. I’ll try to rebuild all. The problem is that this piece of code runs thousands times a second and the segmentation happens once in several days.
Try complete rebuild (make clean && make), this had helped me a couple of times when I encountered such weird errors.
Late UPD:
If this does fix the problem, it usually means that something is wrong with your makefile, usually screwed-up dependencies between .cpp and .h files, for example: a.cpp includes b.h, but b.h is not listed in a.cpp’s dependencies.