How to debug?
Jalil Karimov <jukarimov@gmail.com>
jukarimov at gmail.com
Fri Jan 27 20:06:17 EST 2012
Oops, sorry for spam, I found it, there was char[80]
But in dictionary there's a string longer than that, fixed now :D
Cheers,
Jalil
On Sat, 28 Jan 2012, Mulyadi Santosa wrote:
> 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