[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] Solaris edje troubles



This might not actually be a problem with the X server as much as an
assumption in edje that printf won't segv on a string pointer to NULL.

On 11/24/06, Falko Schmidt <kaethorn@stud.uni-stuttgart.de> wrote:
[...]
> > > Now that I've got E17 running, I noticed that it recieves no
> > > keyboard input at all (e.g. in the 'run command' dialog or and other
> > > widget) although input works for applications run inside E17 (e.g.
> > > xterm). I'll investigate a bit more, but maybe someone out there
> > > already knows how to deal with it.
> >
> > weird again. never seen this problem before.
> >
> I've used xnest to investigate the error some more. It seems that the
> segfault is caused by _grab_key_down_cb (bt follows).
>
> One thing to note is that modifier keys as well as backspace and cursor
> keys work in the input widgets - but pressing any other character
> doesn't have any effect.
>
> Next is that if I specify a key binding with "enlightenment_remote
> -binding-key-add" it works.
>
> Producing a backtrace with gdb wasn't very successful because after
> adding debugging symbols to E17, gdb complained about the stack being
> corrupted. However using mdb I've got the following results:
>
> ESTART: 29.85751 [6.89135] - SLEEP
> mdb: stop on SIGSEGV
> mdb: target stopped at:
> libc.so.1`strlen+0x50:  ld        [%o2], %o1
> mdb: You've got symbols!
> Loading modules: [ ld.so.1 libc.so.1 libuutil.so.1 ]
> > $c
> libc.so.1`strlen+0x50(1835c5, ffbcd6d4, 57c3d9, 0, 0, 0)
> libc.so.1`printf+0xf4(1835b8, 1a4608, 0, 1a4626, fe8e8284, 2ff770)
> _grab_key_down_cb+0x148(296438, a, 2ff770, 1db038, 1db038, 588b48)
> libecore.so.1.0.0`_ecore_event_call+0x36c(0, 20000000, 2f08c, ff3ee0f8,
> 0,
> ff06a248)
> libecore.so.1.0.0`_ecore_main_loop_iterate_internal+0x82c(0, 6,
> ffffffd1, 1,
> fe8f0527, ff06a248)
> libecore.so.1.0.0`ecore_main_loop_begin+0x54(2f, 1a4608, 0, 1a4626,
> fe8e8284,
> 1a2b68)
> main+0x54d8(1, ffbff204, ffbff20c, 1a4a9c, fecf0140, fecf0180)
> _start+0x5c(0, 0, 0, 0, 0, 0)
> > ::status
> debugging PID 13681 (32-bit)
> file: /usr/local/bin/enlightenment
> threading model: multi-threaded
> status: stopped on SIGSEGV (Segmentation Fault)
> event: stop on SIGSEGV
>
>
> Just for convenience, here's the bt output from gdb:
>
> ESTART: 1.86219 [0.11480] - SLEEP
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xfe830c90 in strlen () from /lib/libc.so.1
> (gdb) bt
> #0  0xfe830c90 in strlen () from /lib/libc.so.1
> #1  0xfe896258 in _ndoprnt () from /lib/libc.so.1
> #2  0xfe898404 in printf () from /lib/libc.so.1
> #3  0x00100c30 in ?? ()
> #4  0x00100c30 in ?? ()
> Previous frame identical to this frame (corrupt stack?)
>
>
> And another one with gdb, just without symbols:
>
> #0  0xfe830c90 in strlen () from /lib/libc.so.1
> #1  0xfe896258 in _ndoprnt () from /lib/libc.so.1
> #2  0xfe898404 in printf () from /lib/libc.so.1
> #3  0x00100c30 in _grab_key_down_cb ()
> #4  0xff046e60 in _ecore_event_call () from /usr/local/lib/libecore.so.1
> #5  0xff052004 in _ecore_main_loop_iterate_internal ()
>    from /usr/local/lib/libecore.so.1
> #6  0xff0506d8 in ecore_main_loop_begin () from
>    /usr/local/lib/libecore.so.1
> #7  0x0002f094 in main ()
>
> Please tell me if you need more details or another kind of bt.
>
> Falko

I've investigated some more. The segfault is caused by ev->key_compose
in the printf statement in the function _grab_key_down_cb. If I remove
only that part and make the line look like:

printf("'%s' '%s'\n", ev->keyname, ev->keysymbol );

E17 won't segfault while grabbing the key. That doesn't solve the
problem though. Still, I can't get any text entry widget to reflect any
kind of keypresses except cursor keys, backspace and delete, at least it
doesn't segfault there (never did).

Is there a way to find out the reason for this problem?

I'm not really understand too much about X internals, but it might be a
Xsun issue or the way Xsun handles key events. Maybe adding some extra
treatment to XLookupKeysym.

I'll come back if I find out more.

Falko

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel