В MSVC++ 2008/2010
Вызов strftime с неправильной строкой формата приводит к падению программы.
Срабатывают два ассерта после которых функция должна была бы по сценарию вернуть 0.
И мы попадаем в
__declspec(noinline)
void __cdecl _CRT_DEBUGGER_HOOK(int _Reserved)
{
/* assign 0 to _debugger_hook_dummy so that the function is not folded in retail */
(_Reserved);
_debugger_hook_dummy = 0;
}
Вот минимальный код программы где это проявляется
#include <iostream>
#include <time.h>
int main()
{
time_t tt = time(0);
tm* t = localtime(&tt);
char s[256] = {0};
size_t sz = 0;
try {
sz = strftime(s, 255, "%H%M%", t);
std::cout << s <<std::endl;
}
catch (...) {
std::cout << "exception" <<std::endl;
}
std::cin.get();
return 0;
}