[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#10669: More debugging
From: |
Michael Welsh Duggan |
Subject: |
bug#10669: More debugging |
Date: |
Sun, 05 Feb 2012 03:49:43 -0500 |
User-agent: |
Gnus/5.11002 (No Gnus v0.20) Emacs/24.0.93 (gnu/linux) |
Okay. Here's what the infinite loop actually is:
The C function 'command_loop' calls 'top_level_1', which eventually
evals 'top-level', which is 'normal-top-level'. 'normal-top-level'
notes that 'command-line-processed' is t, calls (message "Back to top
level."), and then returns.
Back to 'command_loop, which then calls 'command_loop_2', which calls
command_loop_1', which calls 'read_key_sequence', which calls
'read_char'.
'read_char' eventually calls 'kbd_buffer_get_event' at keyboard.c:2797.
This ends up calling getchar(), since we are running as a daemon
(keyboard.c:3796). This getchar() returns -1. 'read_char' returns this
-1.
'read_key_sequence' takes this -1, and sets its return value to 0
(keyboard.c:9373).
'command_loop_1' takes this 0, and returns nil (keyboard.c:1463).
'command_loop_2' returns nil on nil.
'command_loop' then continues in its loop, calling 'top_level_1' again,
followed by 'command_loop_2'.
--
Michael Welsh Duggan
(md5i@md5i.com)
- bug#10669: More debugging,
Michael Welsh Duggan <=