pico segfaults again because of statusmessage from line 442

Andrei Kholodnyi andrei.kholodnyi at gmail.com
Thu Nov 25 19:35:47 CET 2010


Halim did some investigation on this topic.
status_info pointer passed properly to module_init but got corrupted
later on inside this function.


On 11/24/10, Andrei.Kholodnyi at gmail.com <Andrei.Kholodnyi at gmail.com> wrote:
> On Nov 24, 2010 1:17am, Halim Sahin <halim.sahin at t-online.de> wrote:
>> Hi Andrei,
>
>> I played a bit with gdb and found out that the pointer of status_info
>> isn't accessible when I use -O2.
>> I set a breakpoint and run the module_init function step by step :-).
>
>> When I do same steps with optimizations turned off I can use
>> print *status_info and get somethinng like
>> $2 0x0
>
>
>
>> Here is the output when I use standard CFLAGS -O2
>> 442 *status_info = strdup(MODULE_NAME ": Initialized
>> successfully.")
>
>> ;
>
>> (gdb) print *status_info
>> Cannot access memory at address 0x7fff00000000
> ok, this is for sure a not valid address
> hm... it looks like something happens when passing this param to the
> function.
>
> could you check what address status_info has here
>
> module_main.c line 132
> ret = module_init(&status_info);
>
> and then compare it with status_info value inside module_init (char
> **status_info)
>
>> Are you using different cflags for building pico than eg. espeak?
>
> No, the cflags are identical.
>

-- 
Sent from my mobile device

Believe is not enough, you must know



More information about the Speechd mailing list