PuTTY semi-bug winhelp-crash

PuTTY semi-bug winhelp-crash

This is a mirror. The primary PuTTY web site can be found here.

Home | Licence | FAQ | Docs | Download | Keys | Links
Mirrors | Updates | Feedback | Changes | Wishlist | Team

summary: Context help causes WinHelp crash after PuTTY help files upgraded
class: semi-bug: This might or might not be a bug, depending on your precise definition of what a bug is.
difficulty: taxing: Needs external things we don't have (standards, users etc)

Invoking context help from within Windows PuTTY after the PuTTY help files on a system have been replaced has been observed to cause WinHelp to crash.

Since the crash occurs in winhelp.exe, it's almost certainly a WinHelp bug, but perhaps there is something we can do to avoid triggering it. We're out of ideas, though.

The symptoms I observed (on Win98SE, and also on 2000 when I had access to it, IIRC) were:

  • When using new .HLP and .CNT files (e.g., downloaded into a new directory, alongside a new version of PuTTY such as a development snapshot), invoking context help consistently causes WINHELP.EXE to crash and leave a putty.TMP file lying around.
  • However, invoking the Help file without context by pressing (say) the Help button on PuTTY's configuration dialog, or invoking it from a session's system menu, or from Explorer, works fine (and generates a hidden putty.GID file), and subsequently to that, context help works too.
  • If all the files (including .GID) are moved to a different path, things break again.
  • Deleting the hidden putty.GID file doesn't appear to cause other instances not to break, but it can break a previously-working installation if other help files are accessed in the meantime.
  • The two installations can be copies of each other and still cause trouble.

The precise crash (on Win98SE at least) is: "WINHLP32 caused an invalid page fault in module WINHLP32.EXE at 0167:004099ba." (A Google Groups search finds an apparently unrelated reference, so it's not just us.)

Things I've tried, in desperation:

  • Fiddling with the precise macro we pass to HELP_COMMAND. Changing from JI to JumpId, or filling in the first argument (JI(`putty.hlp',`foo.bar')) makes no difference.
  • This page claims there is an undocumented uCommand value to give to WinHelp() - HELP_TOPIC_ID = 259 - which would avoid the need to use the JI macro at all. However, I've had no luck with it ("The topic does not exist. Contact your application vendor for an updated Help file. (129)") A newsgroup post reports it as broken on Win98.

Audit trail for this semi-bug.


If you want to comment on this web site, see the Feedback page.
(last revision of this bug record was at 2005-03-02 00:53:08 +0000)