[Top][All Lists]

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

bug#13864: 24.3.50; emacsclient -t loops when connected to emacs server

From: Ashish SHUKLA
Subject: bug#13864: 24.3.50; emacsclient -t loops when connected to emacs server running in X11
Date: Fri, 08 Mar 2013 15:38:30 +0530
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (amd64-portbld-freebsd9.1)

On Thu, 07 Mar 2013 14:48:20 +0200, Eli Zaretskii <address@hidden> said:
>> From: address@hidden (Ashish SHUKLA)
>> Cc: address@hidden
>> Date: Thu, 07 Mar 2013 15:49:55 +0530
>> >     (gdb) set pagination off
>> > or
>> >     (gdb) set height 0
>> > will do that.
>> Thanks
>> Let me know if you need anything else or like me to test something.

> Another trick that potentially avoids some work is this:

>  (gdb) set logging on

> This will cause GDB to put all of its output on a file named gdb.txt,
> so you don't need to copy-paste from your screen into the mail
> messages.  (Caveat: this does not show what _you_ type at GDB's
> prompt, only the GDB responses.)

> What I need now is the output of several times the following
> breakpoint is hit:

>   (gdb) break dispnew.c:4509
>   (gdb) commands
>> p i
>> p desired_matrix->nrows
>> if i < desired_matrix->nrows
>> pgrowx desired_matrix->rows+i
>> end

I later added a 'continue' in here as Breakpoint 6 in the output.

>> end

> Also, let's see if scrolling_1 is ever called:

>   (gdb) break scrolling_1
>   (gdb) commands
>> continue
>> end
>   (gdb)

> The goal is to understand why Emacs is redrawing the display although
> nothing on display changes.  There's some convoluted code in
> update_frame_line, a subroutine of update_frame_1, which attempts to
> find the differences between the current line on display and what
> should be on the current line, and only redraw the part(s) that
> changed.  I'd expect that code to figure out that nothing needs to be
> redrawn in this case, but somehow it fails, I don't yet see why.

Not sure if the attached gdb output is any useful. Here is what I did:

- emacs -Q 
- M-x server-start
- gdb stuff, breakpoints + loading .gdbinit
- Started an xterm of dimensions (maybe 20-25 rows)
- emacsclient -t
- key presses (none of them is C-x C-f)
- Breakpoint 1 being hit and requiring me to type 'cont' on every hit
- After some 'cont' inputs, I deleted it, and re-added it as Breakpoint 6 with
 'continue' as mentioned above.
- Breakpoint 6 being continuously hit
- C-x 5 0 in emacsclient window
- appended '====EMACSCLIENT STOPPED====' to logfile
- emacsclient -t
- Breakpoint 6 being hit
- I resized window to 4-5 rows in an effort to reduce no. of redraw messages
- Killed gdb after 2 minutes, which killed emacs.

Let me know if you need more information.


“Tous pour un, un pour tous, c'est notre devise” (Alexandre Dumas, père, "Les
Trois Mousquetaires", 1844)

Sent from my Emacs

Attachment: gdb.txt.xz
Description: Binary data

Attachment: pgphBbICqcUJJ.pgp
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]