How to debug?

Mulyadi Santosa mulyadi.santosa at gmail.com
Fri Jan 27 14:05:02 EST 2012


Hi :)

On Sat, Jan 28, 2012 at 05:51, Jalil Karimov <jukarimov at gmail.com>
<jukarimov at 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 at 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



More information about the Kernelnewbies mailing list