Поймать сбой в Windows CE - PullRequest
       2

Поймать сбой в Windows CE

2 голосов
/ 04 января 2012

Я хотел бы добиться следующего, но после нескольких дней испытаний я все еще не мог понять это.Я занимаюсь разработкой приложения на C ++ для Windows CE 5.0 , и мне хотелось бы иметь возможность создавать дамп стека в файл при его сбое (программно).Я уже знаю, как получить сам стек вызовов, проблема в том, что я не знаю, как запускать свой собственный код при возникновении сбоя .Я попытался поместить свой код в блоки catch, но стек уже размотан, поэтому не повезло.Некоторые функции обработчика исключений доступны на платформе, но set_terminate () или set_unexpected () не перехватывают все типы исключений.Приложение является однопоточным и использует Windows Mobile 5.0 SDK R2.

1 Ответ

1 голос
/ 04 января 2012

вы пробовали SEH?

__try {
// stuff
} __except (DecideWhatToDo()) {

}

int DecideWhatToDo(void){
  // Stack analysis here, should work with \EHsc and \EHa
  //  you could return EXCEPTION_CONTINUE_EXECUTION here so stack should not be unwound
  return EXCEPTION_EXECUTE_HANDLER
}

На самом деле я никогда не пробовал. Как вы интерпретируете свой стек вызовов? Чтобы было полезно находить ошибки?

...