Проще говоря, если программа на C++ выполняет следующую функцию (скажем, в Windows 7, скомпилированная с любой версией VS), затем происходит сбой, и вы подключаете отладчик с помощью WER, или WER создает аварийный дамп, а затем анализирует этот аварийный дамп. .
Можно ли из информации в дампе напрямую сделать вывод, что эта функция была выполнена, то есть найти следы, относящиеся к потоку, который ее выполнил, что эта функция была выполнена .
Или все следы выполнения исчезают, когда я испорчу весь стек?
void bye_bye_stack() {
int local = 42;
int* stackaddr = &local;
while(time(NULL) != NULL) { // prevent optimizations via call to time()
++stackaddr; // stack grows towards smaller addresses, so increasing the pointer will point to info we already put on the stack
*stackaddr = local; // destroy stack content
// program will (likely) crash here once we reach a read-only page
}
}