· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Снова DebugAPI

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Июн 8, 2004 23:55:15

Всё теперь всё работает ... хух... мда... теперь буду делать всё КРАСИВО =)....


Дата: Июн 9, 2004 11:40:27

Объясни мне, а то я торможу - зачем ты уменьшал EIP на 1?


Дата: Июн 9, 2004 15:43:33

Я же заменил CC на старый байт так?.. ну вот и мне надо чтоб процес пошёл опять по этому байту но только уже... выполнив его нормлаьно я и уменьшил .. адрес... выполнения на 1... поставил старый байт ... и снова запустил процесс.. теперь он заново прошёл по этому месту нормально без останова


Дата: Июн 9, 2004 16:34:12

В момент срабатывания исключения EIP указывает как раз на твой CC, разве нет? Если да, то уменьшать его не надо, а если все-таки нет, значит, я что-то напутал.

У тебя рабочий код есть, добавь в него проверку EIP, и напиши о результатах, если не трудно.


Дата: Июн 9, 2004 16:52:10

EIP указывает на следующую после "пойманной" инструкцию.


Дата: Июн 9, 2004 16:58:51

Я точно помню, что, когда я писал свой отладчик, то EIP я не уменьшал, и он у меня указывал именно на СС. Ладно, приду домой - проверю еще раз, о результатах напишу.


Дата: Июн 9, 2004 17:09:03

EIP это инструкшан поинтер..... адрес на который указывает... EIP ВСЕГДА содержит код который будет выполнен следующим... ну проверь конечно... но результат должен быть именно такой же...


Дата: Июн 9, 2004 20:56:40

Читаем туторы Ицзелиона про Debug API ;-)


Дата: Июн 10, 2004 14:13:15

Проверил. Действительно надо отнимать 1, ты прав. А я ошибся, потому что вспомнил немного другой случай - обработка int 3 внутри EH с возвратом ExceptionContinueExecution - там 1 отнимать не нужно.

Но тогда я совсем нифига не понимаю. Почему в отладчике EIP указывает на следующую инструкцию, а в обработчике EH - на инструкцию, вызвавшую исключение?

Получается, что при возникновении int 3 сначала EIP увеличивается на 1, потом вызывается отладчик, и ему отдается контекст с увеличенным EIP. Потом, если отладчик сделает ContinueDebugEvent(..,..,DBG_EXCEPTION_NOT_HANDLED), то EIP уменьшается на 1, и вызывается обработчик исключения, которому отдается контекст с уменьшенным EIP?

"Нич-чего не понимаю." А может быть, уменьшения нету, есть только увеличение, и так даже можно догадаться о наличии отладчика? :-\


Дата: Июн 10, 2004 15:36:03

+) EIP/IP содержит... всегда адрес инструкция которая подлежит выполнению +) (если его конечно ничто не будет модифицировать =)))

OpenThread для совместимости с 9Х лучше не использовать... а еспользовать вместо него DuplicateHandle ... а вот чтоже сделать для того чтоб процесс... мог обратится ... к памяти созданной другим процессом.... VirtualAllocEx опять же не хорошо для совместимости.... можеть ... Файл мапинг... ?

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.116