Emulator Issues #13516
openUnhandled exception from formatted timestamp on savestate file scanning
0%
Description
What's the problem? Describe what went wrong.
As the title claims, there appears to be an odd situation going on, for me anyway, where Dolphin will "crash and burn" when attempting to format a file timestamp from a savestate of any game.
What steps will reproduce the problem?
I have no idea if anyone else is affected, but I can consistently reproduce the problem on my side. If a game I attempt to boot has any savestate file, it will crash the emulator immediately. If not, I have to create a savestate first (which works fine), then it's anyone's guess what's going to trigger it again. Even the quit dialog after pressing Esc has done it.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
I compiled the latest source code via MSVC to sound things out. Definitely present. The "oldest" version I tried where the issue isn't present was directly from a beta build download, 5.0-20347, from 4 and a half months ago. That version runs fine, but its immediate next beta build (5.0-21088) does have the same issue as current. 800+ revisions isn't a small window, but it should narrow things down.
What are your PC specifications? (CPU, GPU, Operating System, more)
Running on Windows 11, Version 10.0.22631, Build 22631
Ryzen 5, 5600
Nvidia RTX 2080
The hardware specs don't really make a difference here.
Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)
Got a stack trace. Timestamp's fine according to Jos, so the issue occurs somewhere in the format call's inner workings.
KernelBase.dll!00007ffab42e5b0c() Unknown
vcruntime140d.dll!00007ffa48be92c1() Unknown
> DolphinD.exe!fmt::v10::detail::do_throw<fmt::v10::format_error>(const fmt::v10::format_error & x) Line 124 C++
DolphinD.exe!fmt::v10::detail::write_codecvt<wchar_t>(fmt::v10::detail::codecvt_result<wchar_t> & out, fmt::v10::basic_string_view<char> in_buf, const std::locale & loc) Line 359 C++
DolphinD.exe!fmt::v10::detail::write_encoded_tm_str<std::back_insert_iterator<fmt::v10::basic_memory_buffer<char,500,std::allocator<char>>>>(std::back_insert_iterator<fmt::v10::basic_memory_buffer<char,500,std::allocator<char>>> out, fmt::v10::basic_string_view<char> in, const std::locale & loc) Line 381 C++
DolphinD.exe!fmt::v10::detail::write<char,std::back_insert_iterator<fmt::v10::basic_memory_buffer<char,500,std::allocator<char>>>,0>(std::back_insert_iterator<fmt::v10::basic_memory_buffer<char,500,std::allocator<char>>> out, const tm & time, const std::locale & loc, char format, char modifier) Line 432 C++
DolphinD.exe!fmt::v10::detail::tm_writer<std::back_insert_iterator<fmt::v10::basic_memory_buffer<char,500,std::allocator<char>>>,char,std::chrono::duration<__int64,std::ratio<1,1>>>::format_localized(char format, char modifier) Line 1352 C++
DolphinD.exe!fmt::v10::detail::tm_writer<std::back_insert_iterator<fmt::v10::basic_memory_buffer<char,500,std::allocator<char>>>,char,std::chrono::duration<__int64,std::ratio<1,1>>>::on_loc_time(fmt::v10::detail::numeric_system ns) Line 1433 C++
DolphinD.exe!fmt::v10::detail::parse_chrono_format<char,fmt::v10::detail::tm_writer<std::back_insert_iterator<fmt::v10::basic_memory_buffer<char,500,std::allocator<char>>>,char,std::chrono::duration<__int64,std::ratio<1,1>>> &>(const char * begin, const char * end, fmt::v10::detail::tm_writer<std::back_insert_iterator<fmt::v10::basic_memory_buffer<char,500,std::allocator<char>>>,char,std::chrono::duration<__int64,std::ratio<1,1>>> & handler) Line 800 C++
DolphinD.exe!fmt::v10::formatter<tm,char,void>::do_format<fmt::v10::basic_format_context<fmt::v10::appender,char>,std::chrono::duration<__int64,std::ratio<1,1>>>(const tm & tm, fmt::v10::basic_format_context<fmt::v10::appender,char> & ctx, const std::chrono::duration<__int64,std::ratio<1,1>> * subsecs) Line 2207 C++
DolphinD.exe!fmt::v10::formatter<tm,char,void>::format<fmt::v10::basic_format_context<fmt::v10::appender,char>>(const tm & tm, fmt::v10::basic_format_context<fmt::v10::appender,char> & ctx) Line 2233 C++
DolphinD.exe!fmt::v10::detail::value<fmt::v10::basic_format_context<fmt::v10::appender,char>>::format_custom_arg<tm,fmt::v10::formatter<tm,char,void>>(void * arg, fmt::v10::basic_format_parse_context<char> & parse_ctx, fmt::v10::basic_format_context<fmt::v10::appender,char> & ctx) Line 1328 C++
DolphinD.exe!fmt::v10::basic_format_arg<fmt::v10::basic_format_context<fmt::v10::appender,char>>::format_custom(const char * parse_begin, fmt::v10::basic_format_parse_context<char> & parse_ctx, fmt::v10::basic_format_context<fmt::v10::appender,char> & ctx) Line 1685 C++
DolphinD.exe!`fmt::v10::detail::vformat_to<char>'::`2'::format_handler::on_format_specs(int id, const char * begin, const char * end) Line 4355 C++
DolphinD.exe!fmt::v10::detail::parse_replacement_field<char,`fmt::v10::detail::vformat_to<char>'::`2'::format_handler &>(const char * begin, const char * end, fmt::v10::detail::vformat_to::__l2::format_handler & handler) Line 2512 C++
DolphinD.exe!fmt::v10::detail::parse_format_string<0,char,`fmt::v10::detail::vformat_to<char>'::`2'::format_handler>(fmt::v10::basic_string_view<char> format_str, fmt::v10::detail::vformat_to::__l2::format_handler && handler) Line 2534 C++
DolphinD.exe!fmt::v10::detail::vformat_to<char>(fmt::v10::detail::buffer<char> & buf, fmt::v10::basic_string_view<char> fmt, fmt::v10::basic_format_args<fmt::v10::basic_format_context<fmt::v10::appender,char>> args, fmt::v10::detail::locale_ref loc) Line 4417 C++
DolphinD.exe!fmt::v10::detail::vformat<std::locale,char>(const std::locale & loc, fmt::v10::basic_string_view<char> fmt, fmt::v10::basic_format_args<fmt::v10::basic_format_context<fmt::v10::appender,char>> args) Line 3907 C++
DolphinD.exe!fmt::v10::vformat<std::locale,0>(const std::locale & loc, fmt::v10::basic_string_view<char> fmt, fmt::v10::basic_format_args<fmt::v10::basic_format_context<fmt::v10::appender,char>> args) Line 4464 C++
DolphinD.exe!fmt::v10::format<std::locale,tm const &,0>(const std::locale & loc, fmt::v10::basic_format_string<char,tm const &> fmt, const tm & <args_0>) Line 4471 C++
DolphinD.exe!State::SystemTimeAsDoubleToString(double time) Line 291 C++
DolphinD.exe!State::GetInfoStringOfSlot(int slot, bool translate) Line 654 C++
DolphinD.exe!MenuBar::UpdateStateSlotMenu() Line 405 C++
DolphinD.exe!MenuBar::OnEmulationStateChanged(Core::State state) Line 166 C++
DolphinD.exe!MenuBar::{ctor}::__l2::<lambda_1>::operator()(Core::State state) Line 94 C++
DolphinD.exe!QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,QtPrivate::List<enum Core::State>,void,`MenuBar::MenuBar'::`2'::<lambda_1>>::call(MenuBar::{ctor}::__l2::<lambda_1> & f, void * * arg) Line 127 C++
DolphinD.exe!QtPrivate::Functor<`MenuBar::MenuBar'::`2'::<lambda_1>,1>::call<QtPrivate::List<enum Core::State>,void>(MenuBar::{ctor}::__l2::<lambda_1> & f, void * __formal, void * * arg) Line 241 C++
DolphinD.exe!QtPrivate::QFunctorSlotObject<`MenuBar::MenuBar'::`2'::<lambda_1>,1,QtPrivate::List<enum Core::State>,void>::impl(int which, QtPrivate::QSlotObjectBase * this_, QObject * r, void * * a, bool * ret) Line 409 C++
[External Code]
DolphinD.exe!Settings::EmulationStateChanged(Core::State _t1) Line 914 C++
DolphinD.exe!Settings::{ctor}::__l2::<lambda_1>::()::__l2::<lambda_1>::operator()() Line 62 C++
DolphinD.exe!QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,``Settings::Settings'::`2'::<lambda_1>::operator()'::`2'::<lambda_1>>::call(Settings::{ctor}::__l2::<lambda_1>::()::__l2::<lambda_1> & f, void * * arg) Line 127 C++
DolphinD.exe!QtPrivate::Functor<``Settings::Settings'::`2'::<lambda_1>::operator()'::`2'::<lambda_1>,0>::call<QtPrivate::List<>,void>(Settings::{ctor}::__l2::<lambda_1>::()::__l2::<lambda_1> & f, void * __formal, void * * arg) Line 241 C++
DolphinD.exe!QtPrivate::QFunctorSlotObject<``Settings::Settings'::`2'::<lambda_1>::operator()'::`2'::<lambda_1>,0,QtPrivate::List<>,void>::impl(int which, QtPrivate::QSlotObjectBase * this_, QObject * r, void * * a, bool * ret) Line 409 C++
[External Code]
DolphinD.exe!app_main(int argc, char * * argv) Line 294 C++
DolphinD.exe!wWinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, wchar_t * __formal, int __formal) Line 313 C++
[External Code]
Files