LINUX.ORG.RU

GENERAL PROTECTION FAULT


0

0

пишу свою ось.

при загрузке получаю исключение - GENERAL PROTECTION FAULT

вопрос: в чем может быть причина, где рыть? может какие-то проблемы с GDT ?

Re: GENERAL PROTECTION FAULT

Не, ну кто ось пишет?
Это скорее всего 13-е исключение, если ты о x86, а оно может возникать по многим причинам. Читай доки по процессору.

Напиши обработчики всех исключений, а в них выводи всю инфу, какую только можно, регистры, стек, етк.

Больше подсказать не могу.

P.S. Мне самому интересно, как отлаживают оси на самом начальном этапе разработки.

Havoc ★★★★ ()
Ответ на: Re: GENERAL PROTECTION FAULT от Havoc

Re: Re: GENERAL PROTECTION FAULT

ага. именно 13ое

но к счастью с этим уже разобрался (оказалось не совсем коректно настроил сегмент кода)

теперь другая проблема - 6ое exception -

invalid operation code

Titanicum ()

Re: GENERAL PROTECTION FAULT

Значит у тебя программа прыгает куда-то не туда, ну или ты действительно использовал какую-то неподдерживаемую инструкцию.

justme ()

Re: GENERAL PROTECTION FAULT

Хоть мне и не нравится, когда изобретают велосипед, колеса у которого могут быть квадратнее :)) чем у существующего, хочу сказать, молодец чувак. Очч-ч-чень интересная задача. Для самообразования. А может и не только. Ведь надо ж когда-то кому-то начинать :))

Banshee ()

Re: GENERAL PROTECTION FAULT

Вспомнил свой курсовой, когда надо было переключиться в защищенный режим, и запустить несколько задач, которые можно было бы принудительно переключать между собой.

Из док были доки по 386 и 486м процам, ух и навозился, зато получилась конфетка вся из себя 32-х разрядная, все таблицы, код, данные задвигались выше мегабайта, у каждой задачи была своя LDT, ринги поддерживались все, какие хочешь, крэш подзадачи не вешал всю систему, етк. Аж самому понравилось, правда с отладкой гимора было выше крыши :)

Havoc ★★★★ ()

Re: GENERAL PROTECTION FAULT

ОС написать легко (сам написал парочку когда-то ;) - трудно заставить кого-то ей пользоваться, не перетащив в нее весь шит к которому так все привыкли. А перетащив - получишь тот же самый "линсди" или "винаос", в лучшем случае "кнюкс". Ну и зачем оно надо?!

Если пишешь на С/C++, то ВООБЩЕ не трать зря время. До тебя огромное количество людей занималось этим 30 лет, все что можно сделать давно попробовано и сделано. И что нельзя сделать тоже, см. osnews. Ничего хорошего не получилось и не получится, это можно считать доказанным практикой окончательно и бесповоротно.

Ищи/создавай другой инструмент.

speer ()

всем сенькс - баг пофиксен

всем сенькс - баг пофиксен

аж на душе легче.

итого на добавление возможности реагировать на события от харда мне понадобилась РОВНО неделя.

теперь осталось самое интересное - процессы, swap etc

Titanicum ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.