Sign in to follow this  
Followers 0
MattDoerksen

Runtime Errors, VS 2010, Latest Revision, Clean Build

17 posts in this topic

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_ = 0xCCCCCCCC

InitVfs (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 = 0xCCCCCCCC

RunGameOrAtlas (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.)

post-14429-0-69860100-1337534502_thumb.j

post-14429-0-33041300-1337534514_thumb.j

Edited by MattDoerksen

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Currently running Windows 8 on this machine but this error just appeared one day while it was running Windows 7.

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites

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+.

Share this post


Link to post
Share on other sites
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 Vista

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.

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 by MattDoerksen

Share this post


Link to post
Share on other sites

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...)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0