MattDoerksen Posted May 20, 2012 Report Share Posted May 20, 2012 (edited) About 2 weeks ago I started getting an error whenever I try to run the program. Since I thought it might have something to do with the problems I was working on I reverted everything (it didn't help). I've even tried re-syncing completely which also didn't help. A couple of other things to note:1) If I hit suppress, then I get the two attached errors.2) This only happens in Debug mode (the two errors), if I switch to release mode they don't appear (but the one below still does) and the game hangs if I try to do anything at the main menu.Any tips/advice on how to fix this so I can get back to coding?Function call failed: return value was -1 (Function failed (no details available))Location: file_system.cpp:157 (CreateDirectories)Call stack:CreateDirectories (file_system.cpp:157) path = 0x0069EA3C -> path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = [8] { 47 ('/'), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized) } mode = 448 (0x000001C0) s = st_dev = (uninitialized) st_ino = (uninitialized) st_mode = (uninitialized) st_nlink = (uninitialized) st_uid = (uninitialized) st_gid = (uninitialized) st_rdev = (uninitialized) st_size = (uninitialized) st_atime = (uninitialized) st_mtime = (uninitialized) st_ctime = (uninitialized)CreateDirectories (file_system.cpp:151) status_ = (uninitialized) path = 0x0069EB18 -> path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = [8] { 92 ('\'), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized) } mode = 448 (0x000001C0) s = st_dev = (uninitialized) st_ino = (uninitialized) st_mode = (uninitialized) st_nlink = (uninitialized) st_uid = (uninitialized) st_gid = (uninitialized) st_rdev = (uninitialized) st_size = (uninitialized) st_atime = (uninitialized) st_mtime = (uninitialized) st_ctime = (uninitialized)CreateDirectories (file_system.cpp:151) status_ = (uninitialized) path = 0x0069EBF4 -> path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = [8] { 92 ('\'), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized) } mode = 448 (0x000001C0) s = st_dev = (uninitialized) st_ino = (uninitialized) st_mode = (uninitialized) st_nlink = (uninitialized) st_uid = (uninitialized) st_gid = (uninitialized) st_rdev = (uninitialized) st_size = (uninitialized) st_atime = (uninitialized) st_mtime = (uninitialized) st_ctime = (uninitialized)CreateDirectories (file_system.cpp:151) status_ = (uninitialized) path = 0x0069ECFC -> path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = [8] { 92 ('\'), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized) } mode = 448 (0x000001C0) s = st_dev = (uninitialized) st_ino = (uninitialized) st_mode = (uninitialized) st_nlink = (uninitialized) st_uid = (uninitialized) st_gid = (uninitialized) st_rdev = (uninitialized) st_size = (uninitialized) st_atime = (uninitialized) st_mtime = (uninitialized) st_ctime = (uninitialized)CreateDirectories (file_system.cpp:149) path = 0x0069F24C -> path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = [8] { 92 ('\'), (uninitialized), 39448, 172, 39696, 172, (uninitialized), (uninitialized) } mode = 448 (0x000001C0) s = st_dev = (uninitialized) st_ino = (uninitialized) st_mode = (uninitialized) st_nlink = (uninitialized) st_uid = (uninitialized) st_gid = (uninitialized) st_rdev = (uninitialized) st_size = (uninitialized) st_atime = (uninitialized) st_mtime = (uninitialized) st_ctime = (uninitialized)VFS::Mount (vfs.cpp:69) status_ = (uninitialized) this = 0x00AC8FF0 -> (IVFS) m_cacheSize = 209715200 (0x0C800000) m_fileCache = impl = px = 0x00ACC7F0 -> m_cache = entries_awaiting_eviction = (unsupported list<CacheEntry<boost::shared_ptr<unsigned char>,Divider_Naive> >) mgr = map = table_ = buckets_ = 0x00000000 bucket_count_ = 11 (0x0000000B) allocators_ = (unsupported ) (unsupported ) current_ = false funcs_ = [2] { { data_ = { buf = [1] { [8] { 205, 205, 205, 0, 0, 0, 0, 0 } }, align_ = t0 = 205 t1 = 205 t2 = 205 t3 = 205 t4 = 205 t5 = 205 t6 = 205 t7 = 205 t8 = 205 t9 = 205 t10 = 205 t11 = 205 t12 = 205 t13 = 205 t14 = 205 t15 = 205 t16 = 205 t17 = 205 t18 = 205 t19 = 205 t20 = 205 (too much output; skipping to next top-level symbol)} }, { data_ = { buf = [1] { [8] { 205, 205, 0, 0, 0, 0, 0, 0 } }, align_ = t0 = 205 t1 = 205 t2 = 205 t3 = 205 t4 = 205 t5 = 205 t6 = 205 t7 = 205 t8 = 205 t9 = 205 t10 = 205 t11 = 205 t12 = 205 t13 = 205 t14 = 205 t15 = 205 t16 = 205 t17 = 205 t18 = 205 t19 = 205 t20 = 205 t21 = 205 t22 = 205 t23 = 205} } } size_ = 0 (0x00000000) mlf_ = 1.000000 (0x3F800000) cached_begin_bucket_ = 0x00000000 max_load_ = 0 (0x00000000) mcd_calc = min_credit_density = 340282346638528860000000000000000000000.000000 (0x7F7FFFFF) min_valid = false is_min_entry = (bool)0xCD m_allocator = px = 0x00ACC8D0 -> m_allocator = impl = px = 0x00ACC928 -> m_pool = da = base = 0x10200000 -> (unavailable - internal error) max_size_pa = 209715200 (0x0C800000) cur_size = 0 (0x00000000) cur_size_pa = 0 (0x00000000) pos = 0 (0x00000000) el_size = 0 (0x00000000) freelist = 0x019D3FA8 m_segregatedRangeLists = m_rangeLists = [32] m_sentinel = m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC948 -> m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC948 (see above) next = 0x00ACC948 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) next = 0x00ACC948 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) m_freeBlocks = 0 (0x00000000) m_freeBytes = 0 (0x00000000) m_sentinel = m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC968 -> m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC968 (see above) next = 0x00ACC968 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) next = 0x00ACC968 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) m_freeBlocks = 0 (0x00000000) m_freeBytes = 0 (0x00000000) m_sentinel = m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC988 -> m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC988 (see above) next = 0x00ACC988 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) next = 0x00ACC988 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) m_freeBlocks = 0 (0x00000000) m_freeBytes = 0 (0x00000000) m_sentinel = m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC9A8 -> m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC9A8 (see above) next = 0x00ACC9A8 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) next = 0x00ACC9A8 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) m_freeBlocks = 0 (0x00000000) m_freeBytes = 0 (0x00000000) m_sentinel = m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC9C8 -> m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC9C8 (see above) next = 0x00ACC9C8 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) next = 0x00ACC9C8 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) m_freeBlocks = 0 (0x00000000) m_freeBytes = 0 (0x00000000) m_sentinel = m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC9E8 -> m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACC9E8 (see above) next = 0x00ACC9E8 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) next = 0x00ACC9E8 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) m_freeBlocks = 0 (0x00000000) m_freeBytes = 0 (0x00000000) m_sentinel = m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACCA08 -> m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACCA08 (see above) next = 0x00ACCA08 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) next = 0x00ACCA08 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) m_freeBlocks = 0 (0x00000000) m_freeBytes = 0 (0x00000000) m_sentinel = m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACCA28 -> m_magic = -3617008641903833651 (0xCDCDCDCDCDCDCDCD) prev = 0x00ACCA28 (see above) next = 0x00ACCA28 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) next = 0x00ACCA28 (see above) m_size = 3452816845 (0xCDCDCDCD) m_id = 3452816845 (0xCDCDCDCD) m_freeBlocks = 0 (0x00000000) m_freeBytes = 0 (0x00000000)... m_bitmap = 0 (0x00000000) m_boundaryTagManager = m_freeBlocks = 0 (0x00000000) m_freeBytes = 0 (0x00000000) m_stats = m_totalAllocatedBlocks = 0 (0x0000000000000000) m_totalAllocatedBytes = 0 (0x0000000000000000) m_totalDeallocatedBlocks = 0 (0x0000000000000000) m_totalDeallocatedBytes = 0 (0x0000000000000000) m_currentExtantBlocks = 0 (0x0000000000000000) m_currentExtantBytes = 0 (0x0000000000000000) m_currentFreeBlocks = 0 (0x0000000000000000) m_currentFreeBytes = 0 (0x0000000000000000) pn = pi_ = 0x00ACCDD8 -> use_count_ = 1 (0x00000001) weak_count_ = 1 (0x00000001) m_checker = allocs = (unsupported map<void *,size_t >) pn = pi_ = 0x00ACCE80 -> use_count_ = 1 (0x00000001) weak_count_ = 1 (0x00000001) pn = pi_ = 0x00ACCED0 -> use_count_ = 1 (0x00000001) weak_count_ = 1 (0x00000001) m_trace = px = 0x00ACCF20 -> (ITrace) pn = pi_ = 0x00ACCF60 -> use_count_ = 1 (0x00000001) weak_count_ = 1 (0x00000001) m_rootDirectory = m_files = (unsupported map<Path,VfsFile >) m_subdirectories = (unsupported map<Path,VfsDirectory >) m_realDirectory = px = 0x00000000 pn = pi_ = 0x00000000 m_shouldPopulate = 0 (0x00000000) mountPoint = 0x0069F228 -> path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = [8] { 47 ('/'), (uninitialized), 39592, 172, 39824, 172, (uninitialized), (uninitialized) } path = 0x0069F24C (see above) flags = 0 (0x00000000) priority = 0 (0x00000000) directory = 0xCCCCCCCC s = (ScopedLock) realDirectory = px = 0xCCCCCCCC pn = pi_ = 0xCCCCCCCCInitVfs (gamesetup.cpp:456) args = 0x0069FA70 -> m_Args = (unsupported vector<pair<CStr8,CStr8> >) m_Arg0 = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = [8] { 92 ('\'), (uninitialized), (uninitialized), (uninitialized), 53750, 45957, 64352, 105 ('i') } hooks = override_gl_upload_caps = 0x00000000 get_log_dir = 0x010EE2B0 -> (psLogDir) bundle_logs = 0x010EDF50 -> (psBundleLogs) translate = 0x00000000 translate_free = 0x00000000 log = 0x00000000 display_error = 0x010967A0 -> (psDisplayError) readonlyConfig = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = (uninitialized) mods = (unsupported vector<CStr8 >) logs = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') modLoosePath = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = (uninitialized) modArchivePath = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = (uninitialized) paths = m_root = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') m_rdata = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') m_gameData = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') m_userData = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') m_config = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') m_cache = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') m_logs = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') LINE_437_ = m_t0 = 0.0524032 (0x3FAAD496DEF594E0) m_description = 0x017E6D80 -> "InitVfs" cacheSize = 209715200 (0x0C800000)Init (gamesetup.cpp:834) args = 0x0069FA70 (see above) __formal = 0 (0x00000000) profilerHTTPEnable = (uninitialized) hooks = override_gl_upload_caps = 0xCCCCCCCC get_log_dir = 0xCCCCCCCC bundle_logs = 0xCCCCCCCC translate = 0xCCCCCCCC translate_free = 0xCCCCCCCC log = 0xCCCCCCCC display_error = 0xCCCCCCCCRunGameOrAtlas (main.cpp:525) argc = 1 (0x00000001) argv = 0x00AC8468 -> 0x00AC84A8 -> "E:\0 AD\build\workspaces\vc2010\..\..\..\binaries\system\pyrogenesis_dbg.exe" ran_atlas = false args = m_Args = (unsupported vector<pair<CStr8,CStr8> >) m_Arg0 = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') res = 6.26566e-010 (0x3E058756238EFC37)main (main.cpp:572) argc = 1 (0x00000001) argv = 0x00AC8468 (see above)wmain (wseh.cpp:380) i = 1 (0x00000001) argc = 1 (0x00000001) argv = 0x00AC4E48 -> 0x00AC4E50 -> "E:\0 AD\build\workspaces\vc2010\..\..\..\binaries\system\pyrogenesis_dbg.exe" utf8_argv = (unsupported vector<char * >) ret = (uninitialized)wmainCRTStartup (crtexe.c:371)CallStartupWithinTryBlock (wseh.cpp:396) ret = (uninitialized)wseh_EntryPoint (wseh.cpp:424)LdrInitializeThunk (:0)LdrInitializeThunk (:0)errno = 17 (?)OS error = 183 (Cannot create a file when that file already exists.) Edited May 20, 2012 by MattDoerksen Quote Link to comment Share on other sites More sharing options...
Ykkrosh Posted May 20, 2012 Report Share Posted May 20, 2012 Can you run it in the VS debugger (in debug mode), and select "break" when it brings up the continue/suppress/break/etc dialog box, and then check the value of the "path" argument in the call to CreateDirectories? Quote Link to comment Share on other sites More sharing options...
MattDoerksen Posted May 21, 2012 Author Report Share Posted May 21, 2012 It dies out on this line in wutil.cpp, personalPath = GetFolderPath(CSIDL_PERSONAL); since it can't find the path. I'll see if I can find out why. Quote Link to comment Share on other sites More sharing options...
historic_bruno Posted May 21, 2012 Report Share Posted May 21, 2012 Which version of Windows? Quote Link to comment Share on other sites More sharing options...
MattDoerksen Posted May 22, 2012 Author Report Share Posted May 22, 2012 Currently running Windows 8 on this machine but this error just appeared one day while it was running Windows 7. Quote Link to comment Share on other sites More sharing options...
historic_bruno Posted May 22, 2012 Report Share Posted May 22, 2012 Which version of the game were you using when it worked? The CSIDL_PERSONAL has been since r11389 and is new in Alpha 10. It should be "My Documents". You have both Windows 7 and 8 installed on the same system? Quote Link to comment Share on other sites More sharing options...
MattDoerksen Posted May 22, 2012 Author Report Share Posted May 22, 2012 I was on a very late Alpha 9 build (not sure exactly when the last time I synced up when it worked, probably close to 4 weeks ago, Windows 7). I used to have Windows 7 but I'd been looking for a chance to refresh everything so I migrated to Win 8. I'll see if I can go back before r11389 and check if it works. If so, I can look at debugging this issue and why Win 8 doesn't like CSIDL_PERSONAL (or at least my configuration). Quote Link to comment Share on other sites More sharing options...
historic_bruno Posted May 23, 2012 Report Share Posted May 23, 2012 One reason it might not work is that CSIDL* are deprecated since Vista, see http://msdn.microsoft.com/en-us/library/windows/desktop/bb762494%28v=vs.85%29.aspx and http://msdn.microsoft.com/en-us/library/windows/desktop/bb762180%28v=vs.85%29.aspx Quote Link to comment Share on other sites More sharing options...
MattDoerksen Posted May 23, 2012 Author Report Share Posted May 23, 2012 Ah, I read a little into that but didn't think much of it. I guess I can look at whipping something up for Win 7+. Quote Link to comment Share on other sites More sharing options...
Ykkrosh Posted May 23, 2012 Report Share Posted May 23, 2012 It dies out on this line in wutil.cpp, personalPath = GetFolderPath(CSIDL_PERSONAL); since it can't find the path. I'll see if I can find out why.Not sure what you mean by "dies out on this line", since that line looks incapable of failing by itself . Do you mean the "ENSURE(SUCCEEDED(ret))" inside GetFolderPath was failing? (If so, what value was 'ret'?)One reason it might not work is that CSIDL* are deprecated since VistaI don't think that should matter - it should be supported forever for compatibility (since it's a very widely used API), and nobody else has reported similar errors on Vista/Win7, as far as I'm aware. Quote Link to comment Share on other sites More sharing options...
MattDoerksen Posted May 23, 2012 Author Report Share Posted May 23, 2012 Not sure what you mean by "dies out on this line", since that line looks incapable of failing by itself . Do you mean the "ENSURE(SUCCEEDED(ret))" inside GetFolderPath was failing? (If so, what value was 'ret'?)I don't think that should matter - it should be supported forever for compatibility (since it's a very widely used API), and nobody else has reported similar errors on Vista/Win7, as far as I'm aware.My mistake, I should have explained it better earlier, it does fail on the ENSURE(SUCCEEDED(ret)) line. Ret is now 'device is not ready' which changed recently, before it was something like path not found.It's weird that this happened since it just stopped working one day while I was still running Windows 7 (no changes were made over that period, after syncing it broke). Quote Link to comment Share on other sites More sharing options...
historic_bruno Posted May 24, 2012 Report Share Posted May 24, 2012 Do you have any kind of weird setup, maybe your documents located on a network drive or non standard location? Check that and see if the drive/folder really exists. Quote Link to comment Share on other sites More sharing options...
MattDoerksen Posted May 24, 2012 Author Report Share Posted May 24, 2012 (edited) The weirdest thing I have in my setup is relocated My Documents to my other (internal) drive, but that's just changing the reference in libraries, I don't actually move anything that already exists. And that wasn't a problem with my old setup either, it just stopped working with update r11389.I'm going to try blowing away my profile. Maybe re-creating it will reset whatever weird behavior is happening. Edited May 24, 2012 by MattDoerksen Quote Link to comment Share on other sites More sharing options...
historic_bruno Posted May 24, 2012 Report Share Posted May 24, 2012 We never used My Documents until r11389 If you moved it in libraries, then surely that's what the win API will return. Is the reference still valid, drive letter didn't change? (Maybe we do need better error handling there...) Quote Link to comment Share on other sites More sharing options...
MattDoerksen Posted May 27, 2012 Author Report Share Posted May 27, 2012 I recreated my profile and the problem went away, so this should be something to note in troubleshooting this sort of issue in the future. Quote Link to comment Share on other sites More sharing options...
historic_bruno Posted May 28, 2012 Report Share Posted May 28, 2012 Ah it's good to know a solution Out of curiosity, what was the first indication of the error, what would someone first see? I'm guessing an error related to the "ENSURE(SUCCEEDED(ret))" line? ENSURE should cause a debug warning if it's test is false. Quote Link to comment Share on other sites More sharing options...
MattDoerksen Posted May 28, 2012 Author Report Share Posted May 28, 2012 Basically the game stopped on that line (ENSURE(SUCCEEDED(ret)) since it couldn't find the directory. I guess we could look at:1) Printing a debug message and a message to the user (ask if they have any weird shortcuts or if they've moved their My Documents, etc.).2) Redirecting the folder to something "standard" (C: emp0AD) or temporary so that they know about the problem. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.