EXCEPTION_BREAKPOINT & ExceptionInformation - undocument ???

Тема в разделе "WASM.WIN32", создана пользователем seeQ, 11 дек 2008.

  1. seeQ

    seeQ New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2003
    Сообщения:
    71
    Всем привет, решил тут немного поэкспериментировать с DebugApi, но вопрос возник с исключением EXCEPTION_BREAKPOINT и с полями ExceptionInformation, в MSDN написано, что эти поля содержат дополнительную информацию описывающие исключение. Также приведены описания этих полей при исключениях EXCEPTION_ACCESS_VIOLATION и EXCEPTION_IN_PAGE_ERROR но для EXCEPTION_BREAKPOINT ничего нет.

    Пример:

    EXCEPTION_DEBUG_EVENT
    dwProcessId=00000F84
    dwThreadId=00000C5C
    ExceptionCode=EXCEPTION_BREAKPOINT
    ExceptionFlags=EXCEPTION_CONTINUABLE
    ExceptionRecord=00000000
    ExceptionAddress=7C901230
    NumberParameters=00000003
    ExceptionInformation[0]=00000000
    ExceptionInformation[1]=07000000
    ExceptionInformation[2]=00070000
    dwFirstChance=00000001

    или:

    EXCEPTION_DEBUG_EVENT
    dwProcessId=00000F84
    dwThreadId=00000C5C
    ExceptionCode=EXCEPTION_BREAKPOINT
    ExceptionFlags=EXCEPTION_CONTINUABLE
    ExceptionRecord=00000000
    ExceptionAddress=01012475
    NumberParameters=00000003
    ExceptionInformation[0]=00000000
    ExceptionInformation[1]=B0000000
    ExceptionInformation[2]=FFB00000
    dwFirstChance=00000001

    Может кто знает что значат эти значения B0000000, FFB00000 ???
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    0xB0000000 - это значение было на момент исключения в регистре Ecx, FFB00000 - в регистре Edx.
     
  3. seeQ

    seeQ New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2003
    Сообщения:
    71
    хм, не совсем, но где-то рядом.

    пример:
    MOV EAX,55555555h
    MOV EDX,66666666h
    MOV ECX,77777777h
    INT 3

    получаем:
    EXCEPTION_DEBUG_EVENT
    dwProcessId=00000AAC
    dwThreadId=00000248
    ExceptionCode=EXCEPTION_BREAKPOINT
    ExceptionFlags=EXCEPTION_CONTINUABLE
    ExceptionRecord=00000000
    ExceptionAddress=01012491
    NumberParameters=00000003
    ExceptionInformation[0]=00000000
    ExceptionInformation[1]=77000000
    ExceptionInformation[2]=77770000
    dwFirstChance=00000001
     
  4. seeQ

    seeQ New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2003
    Сообщения:
    71
    В процессе перебора получаем:

    NumberParameters=00000003
    ExceptionInformation[0]=00000000
    ExceptionInformation[1]=CL000000
    ExceptionInformation[2]=CX0000

    Правда не понятно как эти данные могут пригодиться
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    seeQ
    В текущем процессе это верно, там Ecx/Edx. Всегда расширенная информация содержит часть контекста, поэтому она и не используется. Ты наверно смещение её неверно задаёшь, либо дебагапи кривые.