I put the code snippet in and captured some of its output, and caught about 4 HandlePropertyNotify calls in gdb. Hope this helps.
- dorothy Dominik Vogt wrote:
Interesting. Fvwm should not be in the HandlePropertyNotify() function at all. My guess is that either an innfinite number of PropertyNotify events is generated by the application, or that fvwm receives the same event again and again. Can you please add this code at the front of the HandlePropertyNotify() function in events.c (line 2526), right after the "DBUG" statement: ---------------------------- snip --------------------------- fprintf( stderr, "pn: ser 0x%x time 0x%x atom 0x%x w 0x%08x '%s'\n", (int)te->xproperty.serial, (int)te->xproperty.time, (int)te->xproperty.atom, (int)te->xproperty.window, (fw) ? fw->visible_name : "(null)"); ---------------------------- snip --------------------------- And post a few lines from the end of the output once it is hung? THis should confirm either of my theories. If the numbers "ser" and "time" do not change, it is the same event again and again. In any case, can you repeat the single stepping session until it enters HandlePropertyNotify() for a second time, please? Just hold down the return key in gdb and wait until you have seen the "fprint" from above two times.
-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Dorothy Robinson http://www.twobarleycorns.net
pn: ser 0xc38a time 0xed921240 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc391 time 0xed921247 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc398 time 0xed921250 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc39f time 0xed921257 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3a6 time 0xed92125f atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3ad time 0xed921267 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3b4 time 0xed92126f atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3bb time 0xed921277 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3c2 time 0xed92127f atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3c9 time 0xed921287 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3d0 time 0xed92128e atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3d7 time 0xed921296 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3de time 0xed92129f atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3e5 time 0xed9212a6 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3ec time 0xed9212ae atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3f3 time 0xed9212b6 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc3fa time 0xed9212be atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc401 time 0xed9212c6 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc408 time 0xed9212ce atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc40f time 0xed9212d6 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc416 time 0xed9212dd atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc41d time 0xed9212e5 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc424 time 0xed9212ed atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b 'Two Barleycorns Home Page - Mozilla' pn: ser 0xc42b time 0xed9212f5 atom 0x10e w 0x02000022 'Two Barleycorns Home Page - Mozilla' pn: ser 0x1d4f time 0x0 atom 0x25 w 0x00c0014b '[1] Killed fvwm2 Gdk-ERROR **: X connection to X connection to :0.0 broken (explicit kill or server shutdown). :0.0 broken (explicit kill or server shutdown).
Script started on Wed 04 Dec 2002 11:09:47 PM PST [33;[EMAIL PROTECTED] gdb fvwm2 29238 GNU gdb 5.2.1 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "sparc-sun-solaris2.8"... Attaching to program `/usr/local/bin/fvwm', process 29238 Reading symbols from /usr/local/lib/libXpm.so.4.11...done. Loaded symbols for /usr/local/lib/libXpm.so.4.11 Reading symbols from /usr/lib/libSM.so.6...done. Loaded symbols for /usr/lib/libSM.so.6 Reading symbols from /usr/lib/libICE.so.6...done. Loaded symbols for /usr/lib/libICE.so.6 Reading symbols from /usr/lib/libXext.so.0...done. Loaded symbols for /usr/lib/libXext.so.0 Reading symbols from /usr/lib/libX11.so.4...done. Loaded symbols for /usr/lib/libX11.so.4 Reading symbols from /usr/lib/libsocket.so.1...done. Loaded symbols for /usr/lib/libsocket.so.1 Reading symbols from /usr/lib/libnsl.so.1...done. Loaded symbols for /usr/lib/libnsl.so.1 Reading symbols from /usr/lib/libm.so.1...done. Loaded symbols for /usr/lib/libm.so.1 Reading symbols from /usr/local/lib/libpng12.so.0...done. Loaded symbols for /usr/local/lib/libpng12.so.0 Reading symbols from /usr/lib/libz.so...done. Loaded symbols for /usr/lib/libz.so Reading symbols from /usr/lib/libc.so.1...done. Loaded symbols for /usr/lib/libc.so.1 Reading symbols from /usr/lib/libdl.so.1...done. Loaded symbols for /usr/lib/libdl.so.1 Reading symbols from /usr/openwin/lib/libdga.so.1...done. Loaded symbols for /usr/openwin/lib/libdga.so.1 Reading symbols from /usr/lib/libmp.so.2...done. Loaded symbols for /usr/lib/libmp.so.2 Reading symbols from /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1...done. Loaded symbols for /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1 Reading symbols from /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2...done. Loaded symbols for /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2 Reading symbols from /usr/openwin/lib/locale/common/xlibi18n.so.2...done. Loaded symbols for /usr/openwin/lib/locale/common/xlibi18n.so.2 Reading symbols from /usr/openwin/lib/locale/iso8859-1/xomEuro.so.2...done. Loaded symbols for /usr/openwin/lib/locale/iso8859-1/xomEuro.so.2 Retry #1: Retry #2: Retry #3: Retry #4: [New LWP 1] Symbols already loaded for /usr/local/lib/libXpm.so.4.11 Symbols already loaded for /usr/lib/libSM.so.6 Symbols already loaded for /usr/lib/libICE.so.6 Symbols already loaded for /usr/lib/libXext.so.0 Symbols already loaded for /usr/lib/libX11.so.4 Symbols already loaded for /usr/lib/libsocket.so.1 Symbols already loaded for /usr/lib/libnsl.so.1 Symbols already loaded for /usr/lib/libm.so.1 Symbols already loaded for /usr/local/lib/libpng12.so.0 Symbols already loaded for /usr/lib/libz.so Symbols already loaded for /usr/lib/libc.so.1 Symbols already loaded for /usr/lib/libdl.so.1 Symbols already loaded for /usr/openwin/lib/libdga.so.1 Symbols already loaded for /usr/lib/libmp.so.2 Symbols already loaded for /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1 Symbols already loaded for /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2 Symbols already loaded for /usr/openwin/lib/locale/common/xlibi18n.so.2 Symbols already loaded for /usr/openwin/lib/locale/iso8859-1/xomEuro.so.2 0xff01d190 in _poll () from /usr/lib/libc.so.1 (gdb) where #0 0xff01d190 in _poll () from /usr/lib/libc.so.1 #1 0xfefcd15c in select () from /usr/lib/libc.so.1 #2 0xff21bb58 in _XWaitForReadable () from /usr/lib/libX11.so.4 #3 0xff21b988 in _XRead () from /usr/lib/libX11.so.4 #4 0xff21c904 in _XReply () from /usr/lib/libX11.so.4 #5 0xff223d2c in XSync () from /usr/lib/libX11.so.4 #6 0x0002cbd0 in flush_property_notify (atom=37, w=29360165) at events.c:3745 #7 0x0002b568 in HandlePropertyNotify (ea=0xffbeef10) at events.c:2651 #8 0x00032104 in __resize_window (cond_rc=0x0, exc=0xdace0, action=0xc98c6 "") at move_resize.c:3319 #9 0x000324f0 in CMD_Resize (cond_rc=0xffbef25c, exc=0xdace0, action=0xc98c6 "") at move_resize.c:3450 #10 0x0006159c in __execute_function (cond_rc=0xffbef25c, exc=0xdac58, action=0xc9840 "$0", exec_flags=224 '', args=0x980bc) at functions.c:586 #11 0x00061978 in __run_complex_function_items (cond_func_rc=0xffbef25c, cond=109 'm', func=0xd6188, exc=0xdac58, args=0xffbef2e8) at functions.c:771 #12 0x00061fb8 in execute_complex_function (cond_rc=0x0, exc=0xdabd0, action=0x6d <Address 0x6d out of bounds>, desperate=0xffbef2e8) at functions.c:1063 #13 0x000615fc in __execute_function (cond_rc=0xffbef39c, exc=0xcf7b8, action=0xb9890 "FuncFvwmRaiseLowerX Resize", exec_flags=208 'Ï', args=0x0) at functions.c:605 #14 0x00062150 in execute_function (cond_rc=0x0, exc=0xcf7b8, action=0xb97f0 "FuncFvwmRaiseLowerX Resize", exec_flags=0 '\0') at functions.c:1176 #15 0x000288bc in __handle_bpress_action (exc=0xcf7b8, action=0xb97f0 "FuncFvwmRaiseLowerX Resize") at events.c:568 #16 0x00028b00 in __handle_bpress_on_managed (exc=0xcf7b8) at events.c:673 #17 0x00028bdc in HandleButtonPress (ea=0xcf7b8) at events.c:717 #18 0x0002c0e0 in dispatch_event (e=0xffbef6d0) at events.c:3210 #19 0x0002c198 in HandleEvents () at events.c:3248 #20 0x0004b0bc in main (argc=848256, argv=0x94488) at fvwm.c:2412 (gdb) s Single stepping until exit from function _poll, which has no line number information. 0xfefcd15c in select () from /usr/lib/libc.so.1 (gdb) Single stepping until exit from function select, which has no line number information. 0xff21bb58 in _XWaitForReadable () from /usr/lib/libX11.so.4 (gdb) Single stepping until exit from function _XWaitForReadable, which has no line number information. 0xff21b988 in _XRead () from /usr/lib/libX11.so.4 (gdb) Single stepping until exit from function _XRead, which has no line number information. 0xff21c904 in _XReply () from /usr/lib/libX11.so.4 (gdb) Single stepping until exit from function _XReply, which has no line number information. 0xff223d2c in XSync () from /usr/lib/libX11.so.4 (gdb) Single stepping until exit from function XSync, which has no line number information. flush_property_notify (atom=37, w=29360165) at events.c:3746 3746 for (count = 0; FCheckTypedWindowEvent(dpy, w, PropertyNotify, &e); (gdb) FCheckTypedWindowEvent (display=0xbcf70, w=29360165, event_type=28, event_return=0xffbeed60) at FEvent.c:312 312 rc = XCheckTypedWindowEvent(display, w, event_type, &fev_event); (gdb) 313 if (rc == True) (gdb) 315 *event_return = fev_event; (gdb) 316 fev_update_last_timestamp(event_return); (gdb) fev_update_last_timestamp (ev=0xb54e8) at FEvent.c:56 56 { (gdb) fev_update_last_timestamp (ev=0xffbeed60) at FEvent.c:59 59 switch (ev->type) (gdb) 81 break; (gdb) 94 if (new_timestamp > fev_last_timestamp || (gdb) 97 fev_last_timestamp = new_timestamp; (gdb) 101 } (gdb) FCheckTypedWindowEvent (display=0x1, w=29360165, event_type=28, event_return=0xffbeed60) at FEvent.c:320 320 } (gdb) flush_property_notify (atom=37, w=29360165) at events.c:3749 3749 if (e.xproperty.atom != atom) (gdb) 3751 FPutBackEvent(dpy, &e); (gdb) FPutBackEvent (display=0xbcf70, event=0xffbeed60) at FEvent.c:426 426 rc = XPutBackEvent(display, event); (gdb) 429 } (gdb) flush_property_notify (atom=37, w=29360165) at events.c:3757 3757 } (gdb) HandlePropertyNotify (ea=0xffbeef10) at events.c:2652 2652 if (HAS_EWMH_WM_ICON_NAME(fw)) (gdb) 2656 FlocaleGetNameProperty( (gdb) FlocaleGetNameProperty (func=0xb3190 <XGetWMIconName>, dpy=0xbcf70, w=29360165, ret_name=0xffbeee60) at Flocale.c:1570 1570 if (func(dpy, w, &text_prop) == 0) (gdb) 1575 if (text_prop.encoding == XA_STRING) (gdb) 1600 ret_name->name = (char *)text_prop.value; (gdb) 1601 ret_name->name_list = NULL; (gdb) 1600 ret_name->name = (char *)text_prop.value; (gdb) 1603 } (gdb) HandlePropertyNotify (ea=0xffbeef10) at events.c:2658 2658 if (new_name.name == NULL) (gdb) 2662 free_window_names(fw, False, True); (gdb) free_window_names (fw=0xd2aa8, nukename=0, nukeicon=1) at add_window.c:2838 2838 if (!fw) (gdb) 2843 if (nukename && fw->visible_name && (gdb) 2892 if ((fw->name.name != fw->icon_name.name) && (gdb) 2895 FlocaleFreeNameProperty(&(fw->icon_name)); (gdb) FlocaleFreeNameProperty (ptext=0xd2ab0) at Flocale.c:1607 1607 if (ptext->name_list != NULL) (gdb) 1614 else if (ptext->name != NULL) (gdb) 1616 XFree(ptext->name); (gdb) 1618 ptext->name = NULL; (gdb) free_window_names (fw=0xd2aa8, nukename=0, nukeicon=1) at add_window.c:2896 2896 fw->visible_icon_name = NULL; (gdb) 2902 } (gdb) HandlePropertyNotify (ea=0xffbeef10) at events.c:2663 2663 fw->icon_name = new_name; (gdb) 2664 if (fw->icon_name.name && strlen(fw->icon_name.name) > (gdb) 2671 if (fw->icon_name.name == NULL) (gdb) 2670 SET_WAS_ICON_NAME_PROVIDED(fw, 1); (gdb) 2671 if (fw->icon_name.name == NULL) (gdb) 2676 setup_visible_name(fw, True); (gdb) setup_visible_name (fw=0xd2aa8, is_icon=1) at add_window.c:1522 1522 if (fw == NULL) (gdb) 1528 if (is_icon) (gdb) 1530 if (fw->visible_icon_name != NULL && (gdb) 1539 setup_icon_name_count(fw); (gdb) setup_icon_name_count (fw=0xd2aa8) at add_window.c:517 517 if (!fw->icon_name.name) (gdb) 521 if (fw->name.name && (gdb) 517 if (!fw->icon_name.name) (gdb) 521 if (fw->name.name && (gdb) 527 while (!done) (gdb) 530 for (t = Scr.FvwmRoot.next; t != NULL; t = t->next) (gdb) 532 if (t == fw) (gdb) 536 if ((t->icon_name.name && (gdb) 548 } (gdb) 549 fw->icon_name_count = count; (gdb) 552 } (gdb) setup_visible_name (fw=0xd2aa8, is_icon=1) at add_window.c:1541 1541 } (gdb) 1556 if (name == NULL) (gdb) 1561 if (count > MAX_WINDOW_NAME_NUMBER - 1) (gdb) 1566 if (count != 0 && (gdb) 1578 ext_name = name; (gdb) 1581 if (is_icon) (gdb) 1584 } (gdb) 1591 } (gdb) HandlePropertyNotify (ea=0xffbeef10) at events.c:2677 2677 BroadcastWindowIconNames(fw, False, True); (gdb) BroadcastWindowIconNames (fw=0xd2aa8, window=0, icon=1) at module_interface.c:1333 1333 if (window) (gdb) : kill Kill the program being debugged? (y or n) y (gdb) quit [33;[EMAIL PROTECTED] script done on Wed 04 Dec 2002 11:13:13 PM PST