Subject: Re: bug#32932: 27.0.50; render bugs on macOS Mojave

From: Aaron Jensen <[email-masked]>
Date: Sat, 3 Nov 2018 10:56:14 -0700

On November 3, 2018 at 2:24:10 AM, Eli Zaretskii ([email-masked](mailto:
[email-masked])) wrote:

> Doesn't the latest GDB compile on macOS? I thought it did, but
> perhaps that's only available in the GDB Git repo.

It does, it just doesn’t recognize emacs as a valid binary. I’ve tried out
a patch that’s supposed to help with that, but it didn’t work. I’ve give
these instructions a shot: https://stackoverflow.com/a/24918436/11229 and
no luck. I’ve tried for hours and cannot get GDB with emacs on Mojave. I
have gdb working with other built programs (like gdb itself), but when
attempting to run emacs, I either get the code signing error:

Starting program: /Users/aaronjensen/Source/emacs/src/emacs
Unable to find Mach task port for process-id 9979: (os/kern) failure (0x5).

(I’ve code signed gdb, but it only works when running gdb as sudo for a
reason I do not yet know.)

And when running as sudo:

(gdb) set startup-with-shell off
No symbol table is loaded.  Use the "file" command.
(gdb) run
Starting program: /Users/aaronjensen/Source/emacs/src/emacs

Program terminated with signal SIGTRAP, Trace/breakpoint trap.
The program no longer exists.

> > I’ll see what I can figure out.
>
> You can, of course, manually type the equivalents of the commands that
> GDB uses in pgrowx.

That’d require skills I don’t have yet, but I’ll see what I can do.

> In an Emacs configured with --enable-checking=yes,glyphs, you can also
> use the dump-glyph-row command to the same effect.

Would doing this on the row that has the problem even if it is not
currently flickering be useful?

> > > And which row is the problematic one: the one at Y = 0 or at Y = 637?
> >
> > I don’t understand Y=0, is that 0 from where the point is? It’s
> > probably the 16th row or so from the top.
>
> The Y coordinate is measured from the top of the window.

In pixels? In that case, the flickering row is probably the 637 one.

> So the problem is with redrawing the cursor in a screen line that
> shows a tall image? Is there any text before and/or after the image
> in the same screen line?

No, the problem is with the redrawing the cursor on the row that in the
active window *before* the image loads. See the attached gif. Frame 2 of
the gif shows the blank. Frame 1 is before I press enter. When I press
enter, which triggers a find-file on that image, it blanks the line, then
loads the image. If I kill the image buffer and return to the home buffer,
the line has been painted.

> If you want to reproduce the flickering, you need to do whatever
> causes redisplay after opening the file. For example, does it flicker
> when you move cursor? Does cursor blinking cause flickering? Each
> one of these should show you the output that tells which parts of the
> glyph row is Emacs actually redrawing.

The logs I provided were from reproducing the flickering.