Вот ссылочка на достаточно понятный пост про обработку исключений C++:
How a C++ compiler implements exception handling
Upd: Вот еще парочка очень неплохих вводных статей:
О компиляции /EHsc (часть 1)
О компиляции /EHsc (часть 2)
Upd2: По внутренностям SEH-исключений есть хорошая статья Matt'a Pietrek'a, правда старенькая (1997), с тех пор особо ничего для прикладного программиста не изменилось.
This blog dedicated to C++ Software development and system configuration issues. Primary language is Russian.
суббота, 25 апреля 2009 г.
четверг, 16 апреля 2009 г.
Использование псевдорегистров MSVC при отладке приложений
Недавно застал человека за очень творческой работой, он методично унавоживал исходный код строками вида
Делалось это с целью поймать ошибку, появляющуюся, когда функция API выдает ошибку, а код ее игнорирует и продолжает дальше работать с невалидными данными.
Я тут же дал совет не портить нервы и код, а использовать псевдорегистры и условные точки останова.
Выяснилось, что человек этого понятия не знает, а после разговора с другими людьми я понял, что эта техника популярностью почему-то не пользуется.
DWORD nCode = ::GetLastError();
char buf[256];
sprintf("LastError=%lu", nCode);
::OutputDebugStringA(buf);
Делалось это с целью поймать ошибку, появляющуюся, когда функция API выдает ошибку, а код ее игнорирует и продолжает дальше работать с невалидными данными.
Я тут же дал совет не портить нервы и код, а использовать псевдорегистры и условные точки останова.
Выяснилось, что человек этого понятия не знает, а после разговора с другими людьми я понял, что эта техника популярностью почему-то не пользуется.
Подписаться на:
Сообщения (Atom)