[Top][All Lists]
[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