[64bit] emacs is unable to call subprocesses if display-time-mode is set

Ken Brown kbrown@cornell.edu
Mon Apr 1 16:04:00 GMT 2013


On 4/1/2013 8:48 AM, Ken Brown wrote:
> On 3/30/2013 7:17 AM, Corinna Vinschen wrote:
>> On Mar 30 06:54, Ken Brown wrote:
>>> When you set display-time-mode in emacs, the mode line near the
>>> bottom of the screen shows the current time.  The code that does
>>> this involves setting itimers.
>>
>> Can you extrace a simple testcase from the itimer code?  That would help
>> a lot to track down this case.  I'm a bit scared of emacs...
>
> I was wrong about itimers.  It turns out that emacs uses two different
> kinds of timers.  One type is defined in C code and uses itimers, and
> the other type is defined in Lisp code.  It's the latter that's involved
> here.  So it won't be easy to make a test case in plain C.
>
> I'm also finding that the order in which I do things affects whether or
> not the bug shows up.  For example, if I start a shell within emacs
> before setting display-time-mode, the bug disappears.  I'll keep looking
> at the emacs code, but maybe you'll be able to see something in the
> strace output.

Sorry for yet another email, but I just wanted to let you know that you 
shouldn't put much time into this unless something jumps out at you.

I just looked at this with gdb again and noticed that the function 
`Fcall_process' [which is the C function that implements the lisp 
function `call-process'] is being called with an argument nargs = 
4305072226, which is 0x1009A3062; the value should be 4.  nargs is of 
type ptrdiff_t.  I'll try to figure out why this is happening.

Ken




More information about the Cygwin-developers mailing list