我正在调试的程序此时正在接收 SIGINT:
#0 0x00007ffff590784e in toupper () from /lib/x86_64-linux-gnu/libc.so.6
有问题的代码是这样的:
std::string search = name;
std::transform(search.begin(), search.end(), search.begin(), ::toupper);
现在我不知道内容是什么,但允许使用特殊符号。
我已经知道我在这里做错了,因为它实际上是 UTF-8,我应该std::wstring
在执行大小写转换之前将其转换为。但是,即使我做错了,我也不明白它为什么会崩溃。
toupper
SIGINT 崩溃的原因是什么?我怎样才能避免一些用户输入可以到我的服务器应用程序?