Dominik Vogt <fvwm-workers@fvwm.org> writes:
> On Fri, Jun 29, 2001 at 02:27:38PM -0400, Dan Espen wrote:
> > Dan Espen <[EMAIL PROTECTED]> writes:
> > > Dominik Vogt <fvwm-workers@fvwm.org> writes:
> > > > On Fri, Jun 29, 2001 at 10:36:02AM -0400, Dan Espen wrote:
> > > > > Ok, heres a trace:
> > > > 
> > > > I'm not quite sure what I should see in this trace.  To me, it
> > > > looks like a random piece of code recorded in a log file.  Is this
> > > > meant to demonstrate one of the busy wait cycles?  If it is, it
> > > > contains neither the start nor the end of the cycle.
> > > 
> > > It is meant to demonstrate the cycle.
> > > 
> > > I thought when it went from XQueryPointer at line 371 in menus.c
> > > back to the same location I had the whole cycle.
> > 
> > In the sample I sent, it seems to fake a MotionNotify event
> > (line 1539, menus.c) and then start querying the pointer, I think
> > its looking for a release event.
> > 
> > If it still looks bad to you, I'll redo it.
> > I might have inadvertantly moved the mouse while trying to get gdb
> > to operate.
> 
> Probably.  A cycly should start at the beginning of the loop in
> MenuInteraction().

Attached is a new trace.

The while loop in menus.c starts with:

flags.do_popdown_now = False;

thats line 1427 in this trace.

You will see that twice in the attached trace.  Actually, I see it
4 times, in pairs like this:

1427        flags.do_popdown_now = False;
1425        flags.do_popup_and_warp = False;
1426        flags.do_popup_now = False;
1427        flags.do_popdown_now = False;

I believe thats just the optimizer rearranging code.

To produce this  trace, I telneted into the  machine running fvwm from
the PC.  Then  I attached gdb to  the  running fvwm and  typed "cont".
Then I  brought  up  a  menu using the    keyboard.  The pointer   was
positioned on the first  item in the menu (below  the title).  Looking
at my cable modem, I could see packets flying back and forth.

I then hit Ctrl-Alt-Tab to select the telnet window.
This leaves the
pointer on the menu item but I can type commands into the telnet window.

I then hit ctrl-C to gain  control and single  stepped thru the loop a
few times.

In the attached trace, I took out the "(gdb)" prompts to make it
easier to read.

Attachment: tracecleaned.gdb
Description: Binary data

-- 
Dan Espen
444 Hoes Lane  Room RRC 1C-214           E-mail: [EMAIL PROTECTED]
Piscataway, NJ 08854                     Phone: (732) 699-5570

Reply via email to