В мое приложение встроена настраиваемая обработка при сбое (см. Превосходную книгу Джона Роббинса «Отладка приложений Windows»). Чтобы проверить эту функциональность, я всегда использовал функцию Windows DebugBreak (), и она всегда работала идеально. Но после Windows 7 вызов этой функции просто говорит «Достигнута точка останова» и останавливает приложение, не вызывая моих обработчиков сбоев.
Я всегда мог поместить этот код в свое приложение для проверки функциональности при сбое:
int *ptr = (int *)0xdeadbeef;
*ptr = 123456789;
Или даже добавить несколько случаев, на случай, если 0xdeadbeef является действительным адресом:
int *ptr = (int *)0xdeadbeef;
*ptr = 123456789;
ptr = (int *)0L;
*ptr = 123456789;
ptr = (int *)0xffffffff;
*ptr = 123456789;
Но мне было интересно: нет ли более чистого способа сбить ваше приложение под Windows?