Hi :) On Sat, Jan 28, 2012 at 05:51, Jalil Karimov <jukarimov@gmail.com> <jukarimov@gmail.com> wrote:
As I learn C, I decided to write a small dictionary program, for my linux box. Unfortunatly, I'm unable to proceed because of that weird bug which I can't debug (no source of crash). Any help is appreciated.
Are you aware your question is not kernel related? :) but anyway...
munmap(0xb7860000, 4096) = 0 write(4, "\320\275\320\276-\320\266\321\221\320\273\321\202\321\213\320\271@11618255\n\321\217\320\270\321"..., 3875) = 3875 close(4) = 0 munmap(0xb785f000, 4096) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++
looks like the bug triggered by releasing certain portion of heap....sounds like double free()? could you recompile your application using -g (a gcc parameter) and then run it again under gdb? hopefully you get better stack strace along with complete symbol names...
==11809== Jump to the invalid address stated on the next line ==11809== at 0x80D15D70: ??? ==11809== Address 0x80d15d70 is not stack'd, malloc'd or (recently) free'd ==11809== ==11809== ==11809== Process terminating with default action of signal 11 (SIGSEGV) ==11809== Access not within mapped region at address 0x80D15D70
or.... you access something that haven't been initialized or malloc()-ed properly. Now I leave it to you to re-audit your source code :) hope it helps.. -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com