Crash on Ctrl+PgDn on tc920x32_b1.exe

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: Hacker, Stefan2, white, sheep

Post Reply
User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Crash on Ctrl+PgDn on tc920x32_b1.exe

Post by *MarcinW » 2018-05-07, 17:14 UTC

I just pressed some unknown key combination by mistake, when being inside of the TC installer executable (tc920x32_b1.exe, Ctrl+PgDn). Then TC 9.12 crashed:

Code: Select all

---------------------------
Total Commander 9.12
---------------------------
in1 (28591)0This code page is not installed (Control Panel)!Delete selected encoding...LCannot delete folders with .
in1 (28591)0This code page is not installed (Control Panel)!Delete selected encoding...LCannot delete folders with 
Windows 2000 SP4 5.0 (Build 2195), base: 00400000

Please report this error to the Author, with a description
of what you were doing when this error occurred!

Delphi exception: EReadError
Stack trace:
793FBCB1
004026B8  004032DA  004032DA  004032DA  004032DA  004032DA
004032DA  004032DA  004032DA  004032DA  004032DA  004032DA
004032DA  004032DA  004032DA  004032DA  004032DA  00511C17
00514599  0058457B  004486A9  0044A6AA  >0042728E  00449C4C
0042728E  0042C95A  0042CAA8  
Raw:
0040F645  004026B8  00403730  00409239  0040F645  0040F645
004032DA  0042728E  004743E6  00403257  0040F7EC  0040E9EB
0040E9EB  0040E9EB  0040E9EB  004026A0  00402D30  0040919B
0040E9EB  0040E9EB  0040EA0B  0040ED47  0040F7CB  004032DA
004032DA  00410017  0040F300  0040F2E2  00411EC7  00447756
004491C0  004032DA  0040F1EB  004032DA  0040F374  004032DA
0040F2B3  004032DA  00411EC7  00447756  004491C0  004032DA
0042892C  004032DA  0040FDA5  004032DA  004032DA  0040E0E1
004032DA  0040C505  004032DA  0040C699  004032DA  004498F9
00449944  0044B92D  004297EC  004486A9  0044A979  00411D62

Press Ctrl+C to copy this report!
Continue execution?
---------------------------
Tak   Nie   
---------------------------

User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 36354
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2018-05-07, 20:51 UTC

Looks like you switched to a different installed input language system-wide?
Author of Total Commander
http://www.ghisler.com

User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW » 2018-05-07, 21:53 UTC

I have really no idea. How could I do this?

User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 36354
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2018-05-08, 09:56 UTC

It's something like left Alt+Shift or left Control+Shift keys to switch through the installed locales. For example, I have installed locales for English, German, French, and Russian (for testing).
Author of Total Commander
http://www.ghisler.com

User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW » 2018-05-08, 11:56 UTC

I checked and I have 3 languages installed, but all key combinations for switching between them are disabled.

So this must have been something else.

User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW » 2018-05-08, 12:21 UTC

I found something.

When you start Totalcmd.exe (9.12, 32-bit) under a debugger and go to memory address 0x83A9D2 (which is equal to file offset 0x4043D2), you will see the "in1 (28591)0This code page [..]" sequence (in Unicode). It's in the middle of some string, which is contained in a resource section.

Conclusion: due to some problem, error string in the crash report is random and meaningless in this case, and should be ignored. So only the Delphi exception class name (EReadError) may be helpful.

User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW » 2018-05-08, 21:50 UTC

It seems that the exception has been raised in Classes.pas, in HandleException procedure, which is internal to the TReader.ReadProperty procedure.

User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW » 2018-07-05, 17:21 UTC

Exception message is loaded from EXE resources - and due to some problem with loading from resources, a malformed message has been used (in1 (28591)0This code page is not installed (Control Panel)!Delete selected encoding...LCannot delete folders with).

TReader.ReadProperty reads Delphi form from EXE resources - and due to some problem with loading from resources, EReadError exception has been raised.


So both the exception message and the exception class suggest some problem with loading from TOTALCMD.EXE resources. Since resources are mapped into memory in read-only mode, they cannot be corrupted just by writing to memory. This leads to conclusion that the problem occured due to some random RAM corruption. And this means that there is nothing to fix in TC.

So I think this bug report can be moved to "Will not be changed".

Regards

User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 36354
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2018-07-06, 13:27 UTC

Thanks for the analysis!
Author of Total Commander
http://www.ghisler.com

Post Reply