On startup, PuTTY remains in an infinite loop. A run with --debugmsg +all reveals the following repeating sequence:
[...] 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = 0 { type=5, win=0x10048, msg=00000118, wparam=0000ffff, lparam=40f806f8, x=0, y=0, time=0049035c, info=00000000, total=0, data={} } 000b: start_hook_chain( id=3 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: start_hook_chain( id=6 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: start_hook_chain( id=-1 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: set_caret_info( flags=00000004, handle=0x10048, x=0, y=0, hide=0, state=-1 ) 000b: set_caret_info() = 0 { full_handle=0x10048, old_rect={1,0;3,14}, old_hide=0, old_state=1 } 000b: select( flags=12, cookie=0x40801c70, timeout=1049423955.356901 (-0.000050), handles={0x3c} ) 000b: select() = TIMEOUT 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = PENDING { type=0, win=(nil), msg=00000000, wparam=00000000, lparam=00000000, x=0, y=0, time=00000000, info=00000000, total=0, data={} } 000b: select( flags=12, cookie=0x40801bc8, timeout=1049423955.357089 (-0.000027), handles={0x3c} ) 000b: select() = TIMEOUT 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = PENDING { type=0, win=(nil), msg=00000000, wparam=00000000, lparam=00000000, x=0, y=0, time=00000000, info=00000000, total=0, data={} } 000b: set_queue_mask( wake_mask=00000040, changed_mask=0000007f, skip_wait=1 ) 000b: set_queue_mask() = 0 { wake_bits=00000000, changed_bits=00000000 } 000b: select( flags=4, cookie=0x40801c18, timeout=0, handles={0x38,0x3c} ) 000b: select() = PENDING 000b: *wakeup* signaled=0 cookie=0x40801c18 000b: select( flags=12, cookie=0x40801bc8, timeout=1049423955.854213 (-0.000046), handles={0x3c} ) 000b: select() = TIMEOUT
[the above seems to be repeated ad infinitum]
000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = 0 { type=5, win=0x10048, msg=00000118, wparam=0000ffff, lparam=40f806f8, x=0, y=0, time=0049054f, info=00000000, total=0, data={} } 000b: start_hook_chain( id=3 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: start_hook_chain( id=6 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: start_hook_chain( id=-1 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: set_caret_info( flags=00000004, handle=0x10048, x=0, y=0, hide=0, state=-1 ) 000b: set_caret_info() = 0 { full_handle=0x10048, old_rect={1,0;3,14}, old_hide=0, old_state=0 } 000b: select( flags=12, cookie=0x40801c70, timeout=1049423955.855377 (-0.000051), handles={0x3c} ) 000b: select() = TIMEOUT 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = PENDING { type=0, win=(nil), msg=00000000, wparam=00000000, lparam=00000000, x=0, y=0, time=00000000, info=00000000, total=0, data={} } 000b: select( flags=12, cookie=0x40801bc8, timeout=1049423955.855568 (-0.000027), handles={0x3c} ) 000b: select() = TIMEOUT 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = PENDING { type=0, win=(nil), msg=00000000, wparam=00000000, lparam=00000000, x=0, y=0, time=00000000, info=00000000, total=0, data={} } 000b: set_queue_mask( wake_mask=00000040, changed_mask=0000007f, skip_wait=1 ) 000b: set_queue_mask() = 0 { wake_bits=00000000, changed_bits=00000000 } 000b: select( flags=4, cookie=0x40801c18, timeout=0, handles={0x38,0x3c} ) 000b: select() = PENDING 000b: *wakeup* signaled=0 cookie=0x40801c18 000b: select( flags=12, cookie=0x40801bc8, timeout=1049423956.355795 (-0.000045), handles={0x3c} ) 000b: select() = TIMEOUT 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = 0 { type=5, win=0x10048, msg=00000118, wparam=0000ffff, lparam=40f806f8, x=0, y=0, time=00490744, info=00000000, total=0, data={} } 000b: start_hook_chain( id=3 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: start_hook_chain( id=6 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: start_hook_chain( id=-1 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: set_caret_info( flags=00000004, handle=0x10048, x=0, y=0, hide=0, state=-1 ) 000b: set_caret_info() = 0 { full_handle=0x10048, old_rect={1,0;3,14}, old_hide=0, old_state=1 } 000b: select( flags=12, cookie=0x40801c70, timeout=1049423956.356958 (-0.000052), handles={0x3c} ) 000b: select() = TIMEOUT 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = PENDING { type=0, win=(nil), msg=00000000, wparam=00000000, lparam=00000000, x=0, y=0, time=00000000, info=00000000, total=0, data={} } 000b: select( flags=12, cookie=0x40801bc8, timeout=1049423956.357150 (-0.000027), handles={0x3c} ) 000b: select() = TIMEOUT 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = PENDING { type=0, win=(nil), msg=00000000, wparam=00000000, lparam=00000000, x=0, y=0, time=00000000, info=00000000, total=0, data={} } 000b: set_queue_mask( wake_mask=00000040, changed_mask=0000007f, skip_wait=1 ) 000b: set_queue_mask() = 0 { wake_bits=00000000, changed_bits=00000000 } 000b: select( flags=4, cookie=0x40801c18, timeout=0, handles={0x38,0x3c} ) 000b: select() = PENDING 000b: *wakeup* signaled=0 cookie=0x40801c18 000b: select( flags=12, cookie=0x40801bc8, timeout=1049423956.853835 (-0.000046), handles={0x3c} ) 000b: select() = TIMEOUT 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = 0 { type=5, win=0x10048, msg=00000118, wparam=0000ffff, lparam=40f806f8, x=0, y=0, time=00490936, info=00000000, total=0, data={} } 000b: start_hook_chain( id=3 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: start_hook_chain( id=6 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: start_hook_chain( id=-1 ) 000b: start_hook_chain() = 0 { handle=(nil), proc=(nil), unicode=0, module=L"" } 000b: set_caret_info( flags=00000004, handle=0x10048, x=0, y=0, hide=0, state=-1 ) 000b: set_caret_info() = 0 { full_handle=0x10048, old_rect={1,0;3,14}, old_hide=0, old_state=0 } 000b: select( flags=12, cookie=0x40801c70, timeout=1049423956.855226 (-0.000113), handles={0x3c} ) 000b: select() = TIMEOUT 000b: get_message( flags=1, get_win=(nil), get_first=00000000, get_last=ffffffff ) 000b: get_message() = PENDING { type=0, win=(nil), msg=00000000, wparam=00000000, lparam=00000000, x=0, y=0, time=00000000, info=00000000, total=0, data={} } 000b: select( flags=12, cookie=0x40801bc8, timeout=1049423956.855488 (-0.000026), handles={0x3c} ) 000b: select() = TIMEOUT [... ad infinitum...]