Форум программистов, компьютерный форум, киберфорум Низкоуровневое программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
6 / 6 / 5
Регистрация: 21.10.2021
Сообщений: 31
1

Регистры какого размера и в каком порядке сохраняются в стеке при возникновении исключения?

16.02.2022, 08:30. Показов 2579. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе утро всем форумчанам.
У меня еще вопросы. При возникновении исключения, процессор сначало в стек кладет CS и EIP и EFLAGS, а потом если есть код ошибки? И еще, CS какого размера? Может быть 4 байтный или нет? А вот еще че, по разным источникам (к сожалению не читал руководства от Intel) размер кода ошибки составляет 2 байта, а в не которых источников 4 байта. Какой размер все таки?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.02.2022, 08:30
Ответы с готовыми решениями:

Редирект при возникновении исключения
Здравствуйте. Требуется при возникновении исключения(когда отсутствует подключение к базе данных) перенаправить на другую страницу,...

Закрытие программы при возникновении исключения
Добрый вечер! Возник такой вопрос... Есть WinForms приложение работающее с файлом БД Access. При запуске программа в блоке try...

При возникновении исключения на Unique срабатывает счетчик id
Есть таблица, id - счетчик. В таблице есть поле "Номер", которое задано Unique. Если пытаюсь добавить строку с повторяющимся номером, то...

1
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6171 / 2407 / 400
Регистрация: 29.07.2014
Сообщений: 3,146
Записей в блоге: 4
04.04.2022, 10:56 2
Лучший ответ Сообщение было отмечено Mikl___ как решение

Решение

Цитата Сообщение от RatOSER Посмотреть сообщение
При возникновении исключения, процессор сначало в стек кладет CS и EIP и EFLAGS, а потом если есть код ошибки?
Немного не так..
Диспетчер исключений кладёт в стек структуру "Exception Pointer",
в которой имеется 4 указателя по такой схеме:

Assembler
1
2
3
4
5
6
struct EXCEPTION_POINTERS
   pExceptRecord  dd  0     ; линк на структуру EXCEPTION_RECORD
   pExceptFrame   dd  0     ; линк на свой SEH-фрейм
   pContext       dd  0     ; линк на структуру CONTEXT (все регистры CPU + FPU)
   pParam         dd  0     ; резерв..
ends
Теперь в структуре "Context" можно будет найти значения всех регистров на момент исключения.
Полная инфа об ошибке будет лежать здесь:

Assembler
1
2
3
4
5
6
7
8
struct EXCEPTION_RECORD
  ExceptionCode      dd  0      ; код ошибки (см.сишный хидер "ntstatus.h")
  ExceptionFlags     dd  0      ; флаг управления данным обработчиком
  NestedRecord       dd  0      ; указатель на предыдущий SEH-фрейма
  ExceptionAddress   dd  0      ; адрес инструкции вызвавшей исключение
  NumberParameters   dd  0      ; число доп.параметров в сл.поле "ExceptionInfo"
  ExceptionInfo      rd  512    ; доп/параметры.
ends
Здесь больше информации на эту тему..
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.04.2022, 10:56
Помогаю со студенческими работами здесь

При возникновении исключения приложение тупо вырубается
Непонятная для меня проблема. Генерирую в коде искуственно исключение. По идее должно ведь стандартное окошко фреймворка появиться с...

Продолжение работы цикла при возникновении исключения
У меня есть цикл который обрабатывает тексты. for (int i = 0; i < n; i++) { ...... } ...

Запись в файл с откатом при возникновении ошибки/исключения
Добрый день! Такой вопрос: допустим идет построчная запись в файл 1000-чи строчек. Допустим на 501-ой вылетает исключение, стоит трай-кетч....

Уничтожить объект при возникновении в конструкторе обрабатываемого исключения
Наверняка ведь случается, что в конструкторе возникает исключение (неправильные данные и т.д.), а как в таком случае прописать в...

Windows 10 и студия 14 (обе enterprise) завершает отладку при возникновении исключения
Раньше была windows 8.1 enterprise, но 90 дневная лицензия кончилась, решил попробовать windows 10 enterprise. Поставил с веб-установщика...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
PHP 8: JIT-компиляция и улучшение производительно­сти
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
Сериализация данных с Apache Avro в Kafka
Javaican 12.03.2025
Apache Kafka стала одним из ключевых решений для работы с большими потоками данных. Однако с ростом объемов передаваемых данных возникает проблема: как эффективно сериализовать и десериализовать. . .
Создание потребителей Kafka с помощью Reactor Kafka
Javaican 12.03.2025
Reactor Kafka — это библиотека, объединяющая Apache Kafka с реактивным программированием на базе Project Reactor. Такое сочетание позволяет строить неблокирующие, асинхронные приложения с контролем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru