Re: [E-devel] Need help tracing OSX crash bug
On Mon, 4 Jul 2011 12:41:33 -0700 Dave Ray cl...@jonive.com said: try replace your evas_xlib_buffer.c file with the attached one. it has some debugging in it to printf some info. it'll being to let me know whats going on with shm segments. i really suspect this has something to do with shm segments. Here is the gdb bt of expedite crashing when run in twm. This is the same evas bug that's crashing e17 on OSX. Expedite throws this before it finishes drawing the window. (gdb) r -e xlib -f Starting program: /usr/local/bin/expedite -e xlib -f Reading symbols for shared libraries . done Reading symbols for shared libraries . done Reading symbols for shared libraries . done Reading symbols for shared libraries .. done Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x01ff 0x00010025c7d4 in _op_copy_c_dp_mmx (s=0x0, m=0x0, c=4294967295, d=0x1ff, l=128) at op_copy_color_i386.c:12 12movq_r2m(mm1, d[0]); (gdb) bt #0 0x00010025c7d4 in _op_copy_c_dp_mmx (s=0x0, m=0x0, c=4294967295, #d=0x1ff, l=128) at op_copy_color_i386.c:12 1 0x00010028b3f4 in #rectangle_draw_internal () 2 0x00010028b0d3 in #evas_common_rectangle_draw () 3 0x000100544562 in eng_rectangle_draw #(data=0x100613880, context=0x100613c90, surface=0x10062cd00, x=-592, y=0, #w=720, h=420) at evas_engine.c:181 4 0x000100217ac1 in #evas_object_rectangle_render () 5 0x000100247f4a in evas_render_mapped #() 6 0x00010024968b in evas_render_updates_internal () 7 #0x000100249d43 in evas_render () 8 0x00011ab4 in main (argc=4, #argv=0x7fff5fbff1f8) at main.c:1373 (gdb) fr 1 #1 0x00010028b3f4 in rectangle_draw_internal () (gdb) l 7movd_m2r(c, mm1); 8movq_r2r(mm1, mm2); 9psllq_i2r(32, mm1); 10 por_r2r(mm2, mm1); 11 for (; d e; d+=2) { 12 movq_r2m(mm1, d[0]); 13 } 14 e+=1; 15 for (; d e; d++) { 16 *d = c; (gdb) p c No symbol c in current context. (gdb) p mm1 No symbol mm1 in current context. (gdb) p mm2 No symbol mm2 in current context. (gdb) p d No symbol d in current context. (gdb) p e No symbol e in current context. (gdb) p *d No symbol d in current context. (gdb) fr 2 #2 0x00010028b0d3 in evas_common_rectangle_draw () (gdb) l 17 } 18} 19 20#define _op_copy_cn_dp_mmx _op_copy_c_dp_mmx 21#define _op_copy_can_dp_mmx _op_copy_c_dp_mmx 22#define _op_copy_caa_dp_mmx _op_copy_c_dp_mmx 23 24#define _op_copy_cn_dpan_mmx _op_copy_c_dp_mmx 25#define _op_copy_c_dpan_mmx _op_copy_c_dp_mmx 26#define _op_copy_can_dpan_mmx _op_copy_c_dp_mmx (gdb) p _op_copy_c_dp_mmx $1 = {void (DATA32 *, DATA8 *, DATA32, DATA32 *, int)} 0x10025c794 _op_copy_c_dp_mmx (gdb) p _op_copy_cn_dp_mmx No symbol _op_copy_cn_dp_mmx in current context. (gdb) p _op_copy_can_dp_mmx No symbol _op_copy_can_dp_mmx in current context. (gdb) p _op_copy_caa_dp_mmx No symbol _op_copy_caa_dp_mmx in current context. (gdb) p _op_copy_cn_dpan_mmx No symbol _op_copy_cn_dpan_mmx in current context. (gdb) fr 0 #0 0x00010025c7d4 in _op_copy_c_dp_mmx (s=0x0, m=0x0, c=4294967295, #d=0x1ff, l=128) at op_copy_color_i386.c:12 12 movq_r2m(mm1, d[0]); (gdb) l 7movd_m2r(c, mm1); 8movq_r2r(mm1, mm2); 9psllq_i2r(32, mm1); 10 por_r2r(mm2, mm1); 11 for (; d e; d+=2) { 12 movq_r2m(mm1, d[0]); 13 } 14 e+=1; 15 for (; d e; d++) { 16 *d = c; (gdb) fr 3 #3 0x000100544562 in eng_rectangle_draw (data=0x100613880, #context=0x100613c90, surface=0x10062cd00, x=-592, y=0, w=720, h=420) at #evas_engine.c:181 181 evas_common_rectangle_draw(surface, context, x, y, w, h); (gdb) l 176 ) 177evas_common_pipe_rectangle_draw(surface, context, x, y, w, h); 178 else 179 #endif 180{ 181 evas_common_rectangle_draw(surface, context, x, y, w, h); 182 evas_common_cpu_end_opt(); 183} 184 } 185 (gdb) p surface $2 = (void *) 0x10062cd00 (gdb) p context $3 = (void *) 0x100613c90 (gdb) p x $4 = -592 (gdb) p y $5 = 0 (gdb) p w $6 = 720 (gdb) p h $7 = 420 (gdb) fr 4 #4 0x000100217ac1 in evas_object_rectangle_render () (gdb) l 186 static void 187 eng_line_draw(void *data __UNUSED__, void *context, void *surface, int x1, int y1, int x2, int y2) 188 { 189 #ifdef BUILD_PIPE_RENDER 190 if ((cpunum 1) 191#ifdef EVAS_FRAME_QUEUING 192evas_common_frameq_enabled() 193 #endif 194 ) 195 evas_common_pipe_line_draw(surface, context, x1, y1, x2, y2); (gdb) p cpunum $8 = 2 (gdb) p surface No symbol surface in current context. (gdb) p context No symbol context in current context. (gdb) p x1 No symbol x1 in current context. (gdb) p y1 $9 = {text
[E-devel] Need help tracing OSX crash bug
E17 is overall working well with OSX. There's one important bug that needs to be fixed before it's ready for a binary release. On OSX, e17 crashes only on the first run after reboot. The white rectangle of death appears, and clicking continue a few times eventually brings up a working e17. However that's too buggy for a binary release. Just to be clear, if I quit e17 and restart, no crash. If I reboot, it crashes again in the same place. The crash only happens on the 1st run after reboot, and is reproducible. The gdb trace is here: http://pastebin.com/JzeA0xw6 The trace looks like something in mmx. If I compile ecore without mmx support, it crashes in the same place, but with equivalent non-mmx calls. That means the problem is probably higher up in the call stack, but I'm not sure where to look. This bug has been around for a while and I have posted before. Posting again hoping someone can help take a look at it. I can #irc if someone wants. If there's anything else useful I could capture pls let me know. I have valgrind, though I'm not sure how to effectively capture e17 in valgrind since it's never called directly - the wm is started with enlightenment_start. Dave -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Need help tracing OSX crash bug
Reposting to keep the thread together (sorry): The bug appears to be in evas, not ecore. I am running expedite using twm, so that none of the EFL's load until I launch expedite (with gdb). Expedite crashes before it even finishes loading, before any tests. GDB shows the exact same error as I was reporting for e17. Expedite window is partially drawn. On #irc now. Dave -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Need help tracing OSX crash bug
Here is the gdb bt of expedite crashing when run in twm. This is the same evas bug that's crashing e17 on OSX. Expedite throws this before it finishes drawing the window. (gdb) r -e xlib -f Starting program: /usr/local/bin/expedite -e xlib -f Reading symbols for shared libraries . done Reading symbols for shared libraries . done Reading symbols for shared libraries . done Reading symbols for shared libraries .. done Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x01ff 0x00010025c7d4 in _op_copy_c_dp_mmx (s=0x0, m=0x0, c=4294967295, d=0x1ff, l=128) at op_copy_color_i386.c:12 12movq_r2m(mm1, d[0]); (gdb) bt #0 0x00010025c7d4 in _op_copy_c_dp_mmx (s=0x0, m=0x0, c=4294967295, d=0x1ff, l=128) at op_copy_color_i386.c:12 #1 0x00010028b3f4 in rectangle_draw_internal () #2 0x00010028b0d3 in evas_common_rectangle_draw () #3 0x000100544562 in eng_rectangle_draw (data=0x100613880, context=0x100613c90, surface=0x10062cd00, x=-592, y=0, w=720, h=420) at evas_engine.c:181 #4 0x000100217ac1 in evas_object_rectangle_render () #5 0x000100247f4a in evas_render_mapped () #6 0x00010024968b in evas_render_updates_internal () #7 0x000100249d43 in evas_render () #8 0x00011ab4 in main (argc=4, argv=0x7fff5fbff1f8) at main.c:1373 (gdb) fr 1 #1 0x00010028b3f4 in rectangle_draw_internal () (gdb) l 7 movd_m2r(c, mm1); 8 movq_r2r(mm1, mm2); 9 psllq_i2r(32, mm1); 10 por_r2r(mm2, mm1); 11 for (; d e; d+=2) { 12movq_r2m(mm1, d[0]); 13 } 14 e+=1; 15 for (; d e; d++) { 16*d = c; (gdb) p c No symbol c in current context. (gdb) p mm1 No symbol mm1 in current context. (gdb) p mm2 No symbol mm2 in current context. (gdb) p d No symbol d in current context. (gdb) p e No symbol e in current context. (gdb) p *d No symbol d in current context. (gdb) fr 2 #2 0x00010028b0d3 in evas_common_rectangle_draw () (gdb) l 17 } 18 } 19 20 #define _op_copy_cn_dp_mmx _op_copy_c_dp_mmx 21 #define _op_copy_can_dp_mmx _op_copy_c_dp_mmx 22 #define _op_copy_caa_dp_mmx _op_copy_c_dp_mmx 23 24 #define _op_copy_cn_dpan_mmx _op_copy_c_dp_mmx 25 #define _op_copy_c_dpan_mmx _op_copy_c_dp_mmx 26 #define _op_copy_can_dpan_mmx _op_copy_c_dp_mmx (gdb) p _op_copy_c_dp_mmx $1 = {void (DATA32 *, DATA8 *, DATA32, DATA32 *, int)} 0x10025c794 _op_copy_c_dp_mmx (gdb) p _op_copy_cn_dp_mmx No symbol _op_copy_cn_dp_mmx in current context. (gdb) p _op_copy_can_dp_mmx No symbol _op_copy_can_dp_mmx in current context. (gdb) p _op_copy_caa_dp_mmx No symbol _op_copy_caa_dp_mmx in current context. (gdb) p _op_copy_cn_dpan_mmx No symbol _op_copy_cn_dpan_mmx in current context. (gdb) fr 0 #0 0x00010025c7d4 in _op_copy_c_dp_mmx (s=0x0, m=0x0, c=4294967295, d=0x1ff, l=128) at op_copy_color_i386.c:12 12movq_r2m(mm1, d[0]); (gdb) l 7 movd_m2r(c, mm1); 8 movq_r2r(mm1, mm2); 9 psllq_i2r(32, mm1); 10 por_r2r(mm2, mm1); 11 for (; d e; d+=2) { 12movq_r2m(mm1, d[0]); 13 } 14 e+=1; 15 for (; d e; d++) { 16*d = c; (gdb) fr 3 #3 0x000100544562 in eng_rectangle_draw (data=0x100613880, context=0x100613c90, surface=0x10062cd00, x=-592, y=0, w=720, h=420) at evas_engine.c:181 181 evas_common_rectangle_draw(surface, context, x, y, w, h); (gdb) l 176 ) 177 evas_common_pipe_rectangle_draw(surface, context, x, y, w, h); 178else 179 #endif 180 { 181 evas_common_rectangle_draw(surface, context, x, y, w, h); 182 evas_common_cpu_end_opt(); 183 } 184 } 185 (gdb) p surface $2 = (void *) 0x10062cd00 (gdb) p context $3 = (void *) 0x100613c90 (gdb) p x $4 = -592 (gdb) p y $5 = 0 (gdb) p w $6 = 720 (gdb) p h $7 = 420 (gdb) fr 4 #4 0x000100217ac1 in evas_object_rectangle_render () (gdb) l 186 static void 187 eng_line_draw(void *data __UNUSED__, void *context, void *surface, int x1, int y1, int x2, int y2) 188 { 189 #ifdef BUILD_PIPE_RENDER 190if ((cpunum 1) 191 #ifdef EVAS_FRAME_QUEUING 192 evas_common_frameq_enabled() 193 #endif 194 ) 195 evas_common_pipe_line_draw(surface, context, x1, y1, x2, y2); (gdb) p cpunum $8 = 2 (gdb) p surface No symbol surface in current context. (gdb) p context No symbol context in current context. (gdb) p x1 No symbol x1 in current context. (gdb) p y1 $9 = {text variable, no debug info} 0x7fff85a57b60 y1 (gdb) p x2 No symbol x2 in current context. (gdb) p y2 No symbol y2 in current context. (gdb) -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of