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

Re: [E-devel] Solaris edje troubles



On Fri, 24 Nov 2006 23:57:26 +0100 Falko Schmidt
<kaethorn@stud.uni-stuttgart.de> babbled:

> [...]
> > > > 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 );

looks like solaris's printf doesnt handle null strings ala glibc - easy to fix.

> 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?

well my guess is you need to put some debugging in e_entry.c in the 
_e_entry_key_down_windows() and _e_entry_key_down_emacs() at the end where they
handle generic key down events and look at the event string - see what it is
(event->string) and why that logic may be failing.

> 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
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster@rasterman.com
裸好多
Tokyo, Japan (東京 日本)