Между тем, шестнадцатеричные коды, как минимум, в Debug-версии приложения, собранном MSVC, уже могут кое о чем рассказать...
Например, после чтения документации совершенно очевидно, что:
- программа попыталась использовать память, которая была освобождена через malloc или delete
- выполняется Debug-версия программы (в Release-версии memory poisoning по соображениям производительности не выполняется)
Вот некоторые "магические числа", которые встречаются мне наиболее часто:
Число | Пояснение |
0xABABABAB | Used by Microsoft's HeapAlloc() to mark "no man's land" guard bytes after allocated heap memory |
0xBAADF00D | Used by Microsoft's LocalAlloc(LMEM_FIXED) to mark uninitialised allocated heap memory |
0xCCCCCCCC | Used by Microsoft's C++ debugging runtime library to mark uninitialised stack memory |
0xCDCDCDCD | Used by Microsoft's C++ debugging runtime library to mark uninitialised heap memory |
0xFDFDFDFD | Used by Microsoft's C++ debugging heap to mark "no man's land" guard bytes before and after allocated heap memory |
0xFEEEFEEE | Used by Microsoft's HeapFree() to mark freed heap memory |
Дополнительную информацию можно почерпнуть в MSDN, или, например,
здесь.
Комментариев нет:
Отправить комментарий