Это сделает это:
/[A-Za-z\u00C0-\u00FF ]+/.exec('hipopótamo maçã pólen ñ poção água língüa')
Он явно выбирает диапазон символов юникода. Он будет работать для латинских символов, но другие странные символы могут быть вне этого диапазона.
Если у Вас есть катастрофический отказ, можно получить информацию о том, где катастрофический отказ произошел, есть ли у Вас отладка или сборка конечных версий. И Вы видите стек вызовов, даже если Вы находитесь на компьютере, который не имеет исходного кода.
Чтобы сделать это, необходимо использовать файл PDB, который был создан с EXE. Поместите файл PDB в том же каталоге как EXE, который отказал.Примечание: Даже если у Вас есть тот же исходный код, создавая дважды и с помощью первого EXE, и второй PDB не будет работать. Необходимо использовать точный PDB, который был создан с EXE.
Затем присоедините отладчик к процессу, который отказал. Пример: windbg или VS.
Затем просто контроль Ваш стек вызовов, также имея Ваше открытое окно потоков. Необходимо будет выбрать поток, который отказал, и проверьте стек вызовов для того потока. Каждый поток имеет различный стек вызовов.
Если Вам уже присоединят Ваш отладчик VS, то он автоматически перейдет к исходному коду, который вызывает катастрофический отказ для Вас.
Если катастрофический отказ происходит в библиотеке, Вы используете это, у Вас нет PDB для. Нет ничего, что можно сделать.
Можно инициировать мини-дамп путем установки обработчика для неперехваченных исключений. Вот статья, которая объясняет все о мини-дампах
Google на самом деле реализовал их собственный обработчик катастрофических отказов с открытым исходным кодом под названием BreakPad, который также использование Mozilla я думаю (это - то, если Вы хотите что-то более серьезное - богатый и устойчивый обработчик катастрофических отказов).
При выполнении отладочной версии на машине с VS она должна предложить поднимать его и позволять Вам видеть отслеживание стека.
Проблема состоит в том, что настоящая проблема больше не находится на стеке вызовов. При освобождении указателя дважды который может привести к этой проблеме, где-то в другом месте не связанной с программой (в следующий раз, когда что-либо получает доступ к "куче" datastructures),
Я записал этот блог на некоторых подсказках для того, чтобы заставлять проблему обнаружиться в стеке вызовов, таким образом, можно выяснить то, что продолжается.
Лучшая подсказка должна использовать gflags утилиту, чтобы заставить проблемы указателя вызвать непосредственные проблемы.
CrashFinder может помочь Вам определить местоположение места исключения, учитывая DLL и адрес исключения, о котором сообщают.
Можно взять этот код и интегрировать его в приложение, чтобы иметь стек козелки, автоматически сгенерированные, когда существует неперехваченное исключение. Это обычно выполняется с помощью __try{} __except{}
или с вызовом к SetUnhandledExceptionFilter, который позволяет Вам указывать обратный вызов ко всем необработанным исключениям.
Если я помню правильно, что окно сообщения должно иметь кнопку, которая говорит 'повторную попытку'. Это должно затем повредить программу (в отладчике) в точке, где утверждение произошло.
Можно было также установить посмертный отладчик в клиентской системе. Это - достойный, общий способ получить информацию, когда у Вас нет создания дампа встроенным в Ваше приложение (возможно, для более старой версии, для которой необходимо все еще получить информацию).
Доктор Watson в Windows может быть установлен путем выполнения: drwtsn32 -i
Выполнение drwtsn32
(без любых опций), поднимет диалоговое окно конфигурации. Это позволит создание файлов дампа катастрофического отказа, которые можно позже проанализировать с WinDbg или чем-то подобным.