emacs-devel
[Top][All Lists]
Advanced

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

Re: Time zone problem in cygwin


From: Ken Brown
Subject: Re: Time zone problem in cygwin
Date: Thu, 05 Feb 2009 17:36:44 -0500
User-agent: Thunderbird 2.0.0.19 (Windows/20081209)

On 2/5/2009 3:38 PM, Eli Zaretskii wrote:
Date: Thu, 05 Feb 2009 09:47:00 -0500
From: Ken Brown <address@hidden>

    http://lists.gnu.org/archive/html/emacs-devel/2008-11/msg00532.html

Eli Zaretskii replied and asked for the value of (format-time-string "%Y-%m-%d %T %z"). The OP never responded, but the answer for me is the following: emacs 23 incorrectly reports 2009-02-05 13:35:36 -0100, whereas emacs 22.3 correctly gives 2009-02-05 09:36:13 -0500 a few seconds later. One further detail: emacs 23 gives the right time if I set TZ=America/New_York prior to starting emacs; but my understanding is that it's not supposed to be necessary to set TZ.

Unfortunately, I don't have Cygwin installed, so I'm forced to ask
you: can you please step through format-time-string in both Emacs 22.3
and Emacs 23, and see where does the difference come from?

I have virtually no experience with gdb, but I looked at the gdb documentation and made an attempt. I can't make sense of the result. What I did was to look at the C source where format-time-string is defined, and I saw the C function synchronize_system_time_locale nearby. This led me to try the following gdb session:

$ gdb /usr/local/bin/emacs
[...]
(gdb) break  synchronize_system_time_locale
Breakpoint 1 at 0x4b51c6: file emacs.c, line 2429.
(gdb) run -Q
Starting program: /usr/local/bin/emacs.exe -Q
[New thread 2500.0x1128]
[New thread 2500.0xc0c]
[New thread 2500.0xddc]
[New thread 2500.0x13a0]
[New thread 2500.0x1414]

[At this point I had emacs evaluate (format-time-string "%Y-%m-%d %T %z"), triggering the breakpoint]

Breakpoint 1, synchronize_system_time_locale () at emacs.c:2429
2429      synchronize_locale (LC_TIME, &Vprevious_system_time_locale,

I then repeatedly pressed 's' to step through the program, and I didn't see anything interesting, or anything different between emacs 22.3 and emacs 23, so finally I just pressed 'c' to continue. At this point emacs displayed the result of the evaluation, and it gave the correct time! I've rechecked this several times, and emacs 23 gives the right time when it's run under gdb (with or without a breakpoint), and the wrong time otherwise. Do you have any idea what could be going on?

If there's anything else I should try under gdb, please give me detailed instructions. As you can see, I don't know much about debugging.

Btw, were both binaries compiled with the same versions of the Cygwin
runtime libraries?

I rebuilt emacs 22.3 before trying the debugging above, so I do have two binaries compiled with the same libraries. And it remains true that emacs 22.3 displays the correct time, even when not run under gdb.

Ken





reply via email to

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