[9.20ß1] TC 64bit Range Check Error

Bug reports will be moved here when the described bug has been fixed

Moderators: white, Hacker, petermad, Stefan2

User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

[9.20ß1] TC 64bit Range Check Error

Post by *deus-ex »

Upon starting TC 9.20ß1 64-bit I get the following error message.

Code: Select all

---------------------------
Total Commander 9.20ß1
---------------------------
Range check error.
Range check error
Windows 10 Professional 10.0 (Build 17134), base: 0400000

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

Stack trace (x64):868B5D
878309 881A98 874B32 7314D2 87A107 880F58 87E938 87E8F7
87E6A8 866779 887618 8875DE 874B40 73027B 7392BC 4395B7

Press Ctrl+C to copy this report!
Continue execution?
---------------------------
Yes   No   
---------------------------
  • Confirming the error message with "yes" to continue, the TC file panes don't show any content (files/directories).
  • Clicking on any main menu item will close TC immediately.
  • If instead clicking on any of the drive icons above the file panel TC will freeze and has to be closed via context menu of the taskbar icon.
The 32-bit executable of TC 9.20ß1 does run fine, though. Note that I'm running Windows 10 Pro 64-bit April 2018 Update, TC 9.12 64/32 bit executables both run without any issues here.

EDIT:
I investigated further and was able to identify the root cause. If the wincmd.ini flag UseIniInProgramDir= is set to either "1" or "3", TC 9.20ß1 64-bit triggers the Range Check Error. TC 9.20ß1 32-bit is not affected by this error, just like TC 9.12 64/32-bit.

Code: Select all

UseIniInProgramDir=0

This variable will only be read if the wincmd.ini is located in the same dir as the program. It must be put in wincmd.ini directly, RedirectSection has no effect on this variable.
It is the sum of the following values:

1: Use wincmd.ini in program dir if no other location is set via registry or parameters
2: Use wcx_ftp.ini in program dir if no other location is set via registry or parameters
4: Override registry settings (but not command line parameters)
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

I identified the root cause of the issue. Check my previous post for details.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48021
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

So it is a problem with the wincmd.ini in that directory? Can you check which option is causing it? So far it didn't happen here. TC 9.20 beta 1 runs fine on the April Windows 10 update.
Author of Total Commander
https://www.ghisler.com
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

ghisler(Author) wrote:So it is a problem with the wincmd.ini in that directory? Can you check which option is causing it?
Christian, in my previous post I described in detail which ini option is causing it.

I repeat:

If the wincmd.ini flag UseIniInProgramDir= is set to either "1", "3", "5" or "7", TC 9.20ß1 64-bit triggers the Range Check Error.

My TC is installed to "c:\Program Files (x86)\Total Commander", Wincmd.ini is located in that folder. There are no TC related registry entries present and no subfolder "Ghisler" in c:\Users\%user%\AppData\Roaming\. The error occurs with TC 9.20ß1 64-bit independently of the location TC is installed to (I tried different locations for the issue research). TC 9.20ß1 32 bit and TC 9.12 32/64 bit do NOT have this issue.
Last edited by deus-ex on 2018-05-04, 11:25 UTC, edited 1 time in total.
karlssonhaus
Junior Member
Junior Member
Posts: 4
Joined: 2018-05-04, 11:01 UTC

Post by *karlssonhaus »

Hi, for me, using any digit except 4 (UseIniInProgramDir=4) gives <Read error!> message in both file panels.
UseIniInProgramDir=4 loads wincmd.ini from C:\Windows dir with default settings.

Win 10 x64 Version 1703
TC 9.2b1 x64
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

1. Are you sure that UseIniInProgramDir=2 does NOT work for you?

2. What about the TC 32-bit executable?

3. What do you mean by "<Read error!>" error message, or do you actually mean "Range check error"?

4. "UseIniInProgramDir=4" does not load wincmd.ini from C:\Windows, the ini is auto-created in folder "c:\Users\%user%\AppData\Roaming\Ghisler".
karlssonhaus
Junior Member
Junior Member
Posts: 4
Joined: 2018-05-04, 11:01 UTC

Post by *karlssonhaus »

deus-ex wrote:1. Are you sure that UseIniInProgramDir=2 does NOT work for you?
After some trials - every odd digit (1, 3, 5, 7) gives <Read error!>. So UseIniInProgramDir=2 works, but it's not what I want.
deus-ex wrote:2. What about the TC 32-bit executable?
I'm not installed it.
deus-ex wrote:3. What do you mean by "<Read error!>" error message, or do you actually mean "Range check error"?
No, as I said - plain "<Read error!>" message in file panel instead of filename. I can't post images, so - _ttps://ibb.co/gS6vYn
deus-ex wrote:4. "UseIniInProgramDir=4" does not load wincmd.ini from C:\Windows, the ini is auto-created in folder "c:\Users\%user%\AppData\Roaming\Ghisler".
I have both ))
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

karlssonhaus wrote:3. No, as I said - plain "<Read error!>" message in file panel instead of filename. I can't post images, so - _ttps://ibb.co/gS6vYn
Alright, I can see now thanks to your screenshot. Btw, the link to your image is broken, it should read "http://image.ibb.co/mpSfzS/Capture.jpg":
Image: http://image.ibb.co/mpSfzS/Capture.jpg
karlssonhaus wrote:4. I have both ))
Hmm, that's odd. Can you check which time stamps they have? I think "c:\Users\%user%\AppData\Roaming\Ghisler\wincmd.ini" should be the most recent one. What happens if you delete C:\Windows\wincmd.ini, does it reoccur upon restart of Total Commander?
karlssonhaus
Junior Member
Junior Member
Posts: 4
Joined: 2018-05-04, 11:01 UTC

Post by *karlssonhaus »

UseIniInProgramDir=0 - wincmd.ini created in C:\Users\%username%\AppData\Roaming\GHISLER
UseIniInProgramDir=2 - wincmd.ini created in C:\Users\%username%\AppData\Roaming\GHISLER
UseIniInProgramDir=4 - wincmd.ini created in C:\Windows
UseIniInProgramDir=6 - wincmd.ini created in C:\Windows
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

Interesting find, here TC (9.20ß1/9.12) behaves the same. I don't think TC is supposed to create wincmd.ini in the C:\Windows folder, so probably that is a bug. Then again the online help does not reveal enough details on this, so hopefully Christian can clarify on this.
User avatar
Dalai
Power Member
Power Member
Posts: 9364
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Just to clarify: Using UseIniInProgramDir=4 on its own doesn't make any sense. Which setting in the registry should TC ignore when you don't tell it what to ignore? In other words: If you don't tell TC to override the location of wincmd.ini (+1) it uses the location from the registry. If there isn't any location stored in the registry, TC falls back to some default, apparently the Windows directory.

Regards
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

Using UseIniInProgramDir=4 on its own does make sense. Either you have settings in the registry that you want to override, be it temporarily or permanently, or if there are no registry entries, it works as a counter measure to ensure any future registry settings will be ignored no matter what.
Dalai wrote:If you don't tell TC to override the location of wincmd.ini (+1) it uses the location from the registry. If there isn't any location stored in the registry, TC falls back to some default, apparently the Windows directory.
The default fall back folder in such a case should definitely be "C:\Users\%username%\AppData\Roaming\Ghisler". This concept of individual user settings is available since Windows Vista, saving individual config data to "C:\Windows" violates this concept.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48021
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I do NOT get any errors with any of the UseIniInProgramDir parameters. All it does is tell TC where to get the settings from.

So when you get this error, please look in menu Help - About Total Commander which ini is used. This ini file must contain some other parameter which is causing the error.
Author of Total Commander
https://www.ghisler.com
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

This time I took a different approach, I started off with a wincmd.ini containing just the following two lines:

Code: Select all

[Configuration]
UseIniInProgramDir=3
This worked well, TC 9.20ß1 64-bit started up, so apparently "UseIniInProgramDir=" is NOT the root of the issue.


After several restarts, with each adding back a few lines of my original wincmd.ini, I identified the combination of the following three entries to trigger the "Range Check Error":

Code: Select all

[3840x2160 (10x20)]
RedirectSection=0
dx=632
dy=447
Removing any one of these three entries while leaving the remaining two entries intact enables TC 9.20ß1 64-bit to run without any errors.

What remains to be solved is why the 64-bit version of TC 9.20ß1 is affected by this issue, while TC 9.20ß1 32-bit and likely all previous releases of TC 32/64-bit are not.
karlssonhaus
Junior Member
Junior Member
Posts: 4
Joined: 2018-05-04, 11:01 UTC

Post by *karlssonhaus »

In my case problem was in "OldStyleDir=1" setting.
I'm also started with empty [General] section and so localized problem.
Post Reply