awthwathje/SteaScree

application (1.4.1) just crashes on selecting steam folder

Closed this issue · 13 comments

I cannot use the program, it just crashes on not finding the steam directory and selecting it manually.

  • Windows 7 SP1 x64 German (latest patches, as of July 2017)
  • steam base directory is C:\STEAM <-- this was selected for folder.
  • there is a unused steamcmd root folder, C:\SteamCMD
  • there is only one user data directory.
  • application was installed with administrator privileges
  • started with my normal user (NO admin priviliges)

please fix.

  • Moving C:\Steam -> C:\Programs (x86)\Steam results in a direct crash
  • starting it with administrative privileges results also in a crash
  • according to the eventlog, it crashes somewhere in Qt5Core.dll, exception code 0xc0000005.

maybe the Windows installer lacks one or more DLLs (see https://stackoverflow.com/questions/22346851/qt-application-fails-to-run).

Please fix.

It works on my freshly installed Windows 7 64 SP1. Just double-checked. Probably, there is something in your screenshots.vdf file. Can you please follow this procedure and report back if it has fixed things?

Your suggested procedure did not work, sadly nothing changed in the behaviour. If you can give me some advice to produce a more meaningful debug dump, I'd willing to assist.

Did you patch your Windows 7 64 SP1 to the current patch level of July 2017?

Okay, I've finally managed to update my virtual Windows 7 and all is working good.

Seems like I need to build a debug version of the app and ask you to run it on your system to check up what's going wrong. Definitely not this week, but hopefully on the next. Stay tuned.

Here we go. Please download the debug version of SteaScree from here. It doesn't need installation, just run SteaScree.exe. Most probably, it will crash. If it doesn't, reproduce steps to make it crash.

After this is done, in this same directory there will be file debug.log. Please share its contents here or send me directly. Hopefully I'll find the issue. If not, I'll make further modifications and we'll repeat the procedure.

Hi, thanks for your effort building the debug version and trying it out.

Debug result:
12:27:28.439 Info: setUserDataPaths entry (..\SteaScree\controller.cpp:175, void Controller::setUserDataPaths(QString))
12:27:28.439 Info: dir: "C:/Program Files (x86)/Steam" (..\SteaScree\controller.cpp:177, void Controller::setUserDataPaths(QString))
12:27:28.439 Info: userDataDir: "C:/Program Files (x86)/Steam/userdata" (..\SteaScree\controller.cpp:181, void Controller::setUserDataPaths(QString))
12:27:28.444 Info: last condition end (..\SteaScree\controller.cpp:292, void Controller::setUserDataPaths(QString))
12:27:46.181 Info: setUserDataPaths entry (..\SteaScree\controller.cpp:175, void Controller::setUserDataPaths(QString))
12:27:46.181 Info: dir: "C:/TEMP/STEAM/userdata/95512330" (..\SteaScree\controller.cpp:177, void Controller::setUserDataPaths(QString))
12:27:46.181 Info: userDataDir: "C:/TEMP/STEAM/userdata/95512330/userdata" (..\SteaScree\controller.cpp:181, void Controller::setUserDataPaths(QString))
12:27:46.181 Info: last condition end (..\SteaScree\controller.cpp:292, void Controller::setUserDataPaths(QString))
12:28:08.136 Info: setUserDataPaths entry (..\SteaScree\controller.cpp:175, void Controller::setUserDataPaths(QString))
12:28:08.136 Info: dir: "C:/STEAM" (..\SteaScree\controller.cpp:177, void Controller::setUserDataPaths(QString))
12:28:08.136 Info: userDataDir: "C:/STEAM/userdata" (..\SteaScree\controller.cpp:181, void Controller::setUserDataPaths(QString))
12:28:08.366 Info: vdfPaths: ("C:/STEAM/userdata/95512330/760/screenshots.vdf") (..\SteaScree\controller.cpp:203, void Controller::setUserDataPaths(QString))
12:28:08.366 Info: current: "C:/STEAM/userdata/95512330/760/screenshots.vdf" (..\SteaScree\controller.cpp:218, void Controller::setUserDataPaths(QString))
12:28:08.366 Info: splitted: ("C:", "STEAM", "userdata", "95512330", "760", "screenshots.vdf") (..\SteaScree\controller.cpp:222, void Controller::setUserDataPaths(QString))
12:28:08.366 Info: userID: "95512330" (..\SteaScree\controller.cpp:226, void Controller::setUserDataPaths(QString))
12:28:08.366 Info: someID: "760" (..\SteaScree\controller.cpp:230, void Controller::setUserDataPaths(QString))
12:28:08.366 Info: userIDsCombined: ("95512330/760") (..\SteaScree\controller.cpp:234, void Controller::setUserDataPaths(QString))
12:28:08.471 Fatal: ASSERT failure in QList::operator[]: "index out of range", file D:/tools/Qt/5.8/mingw53_32/include/QtCore/qlist.h, line 548 (global\qglobal.cpp:3078, void qt_assert_x(const char*, const char*, const char*, int))

The program seems to locate the screenshot.vdf datafile, but then it chokes on loading it.
( trying something out)

After emptying the screenshot data folder (7 & 760), restarting steam and fiddling something with the screenshots to get a fresh screenshots.vdf, I sadly got the same result with steascree ;(

Okay, I've identified the fail point, it's in the Controller's getPersonalNameByUserID() method. For some reason it can't iterate over config files. I extended the debug logging to this method, please repeat the procedure with this new executable.

Maybe the crash occurs because my steam user name includes an UTF8 symbol ("syb 👯" <-- ) and the method getPersonalNameByUserID() trips over the last character?

Edit: I changed my username on steam to "syb" alone, same crash (log).

It still crashes, see the debug log:
12:10:58.251 Info: setUserDataPaths entry (..\SteaScree\controller.cpp:175, void Controller::setUserDataPaths(QString))
12:10:58.251 Info: dir: "C:/Program Files (x86)/Steam" (..\SteaScree\controller.cpp:177, void Controller::setUserDataPaths(QString))
12:10:58.251 Info: userDataDir: "C:/Program Files (x86)/Steam/userdata" (..\SteaScree\controller.cpp:181, void Controller::setUserDataPaths(QString))
12:10:58.252 Info: last condition end (..\SteaScree\controller.cpp:292, void Controller::setUserDataPaths(QString))
12:11:05.945 Info: setUserDataPaths entry (..\SteaScree\controller.cpp:175, void Controller::setUserDataPaths(QString))
12:11:05.945 Info: dir: "C:/STEAM" (..\SteaScree\controller.cpp:177, void Controller::setUserDataPaths(QString))
12:11:05.945 Info: userDataDir: "C:/STEAM/userdata" (..\SteaScree\controller.cpp:181, void Controller::setUserDataPaths(QString))
12:11:06.034 Info: vdfPaths: ("C:/STEAM/userdata/95512330/760/screenshots.vdf") (..\SteaScree\controller.cpp:203, void Controller::setUserDataPaths(QString))
12:11:06.035 Info: current: "C:/STEAM/userdata/95512330/760/screenshots.vdf" (..\SteaScree\controller.cpp:218, void Controller::setUserDataPaths(QString))
12:11:06.035 Info: splitted: ("C:", "STEAM", "userdata", "95512330", "760", "screenshots.vdf") (..\SteaScree\controller.cpp:222, void Controller::setUserDataPaths(QString))
12:11:06.035 Info: userID: "95512330" (..\SteaScree\controller.cpp:226, void Controller::setUserDataPaths(QString))
12:11:06.035 Info: someID: "760" (..\SteaScree\controller.cpp:230, void Controller::setUserDataPaths(QString))
12:11:06.035 Info: userIDsCombined: ("95512330/760") (..\SteaScree\controller.cpp:234, void Controller::setUserDataPaths(QString))
12:11:06.035 Info: getPersonalNameByUserID entry (..\SteaScree\controller.cpp:299, QString Controller::getPersonalNameByUserID(QString))
12:11:06.043 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.050 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.057 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.058 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.059 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.059 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.061 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.061 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/620/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.062 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/620/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.067 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/620/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/swarm/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.068 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/620/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/swarm/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/400/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.068 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/620/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/swarm/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/440/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.069 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/620/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/swarm/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/500/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.070 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/620/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/swarm/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/550/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.071 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/620/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/swarm/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/620/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.122 Info: configFiles: ("C:/STEAM/userdata/95512330/110600/remote/config.cfg", "C:/STEAM/userdata/95512330/221910/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/266430/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/620/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/630/remote/swarm/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/400/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/440/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/500/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/550/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/620/remote/cfg/config.cfg", "C:/STEAM/userdata/95512330/7/630/remote/cfg/config.cfg") (..\SteaScree\controller.cpp:309, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: current: "C:/STEAM/userdata/95512330/110600/remote/config.cfg" (..\SteaScree\controller.cpp:317, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "#console" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "language 3.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "control_layout 0.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "main_window_x 0.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "main_window_y 0.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "sound_sfxvol 1.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "sound_musicvol 1.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "render_doglare 1.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "render_resolution 15.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "render_sync 1.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "render_msaa 0.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "render_particles 1.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "render_shaderversion 2.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: line: "render_fullscreen 1.000000" (..\SteaScree\controller.cpp:327, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Info: pos: -1 (..\SteaScree\controller.cpp:337, QString Controller::getPersonalNameByUserID(QString))
12:11:06.123 Fatal: ASSERT failure in QList::operator[]: "index out of range", file D:/tools/Qt/5.8/mingw53_32/include/QtCore/qlist.h, line 548 (global\qglobal.cpp:3078, void qt_assert_x(const char*, const char*, const char*, int))

Oh, here is the bug. SteaScree finds lots of config files to look for a personal name (which is a nickname shown in Steam). It fails to find such name in the first config, so the variable pos (position of the line with a personal name in config file) gets the -1 value. Then, without any checkups, the app tries to access the line number -1 of this config (i.e. an array of the individual lines), and promptly crashes, because list item No. -1 is impossible.

I've added the needed checkup, and the app should work fine now. Please confirm if this last debug build works for you before I prepare an official update.

Thanks for all your willingness to help, it is much appreciated!

Hello, seems to work now, did not crash and could upload some files ;-)

Thanks!

Cool! Feel free to report if you'll stumble upon any other issue.

Fixed in 1.5.4.