Где используются RtlLookupFunctionEntry/RtlVirtualUnwind/RtlCaptureContext?

Тема в разделе "WASM.BEGINNERS", создана пользователем galenkane, 13 сен 2019.

  1. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
    Вопрос в шапке..

    Если они в коде нигде не используются..
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    как минимум RtlLookupFunctionEntry используется для просмотра RUNTIME_FUNCTION
    А вообщем в интернете немало инфы https://habr.com/ru/company/aladdinrd/blog/324376/
    А а с чего вы взяли, что они нигде не используются?
     
    galenkane нравится это.
  3. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
    Исходя из того, что в своем коде его нет. В CRT используется?
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Во многих библиотеках. Это же экспорт ntdll. следовательно это сервис. кому понадобится для каких либо целей (в данном случае обработки исключений) - тот использует.
     
    galenkane нравится это.
  5. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.235
    открываешь Иду или Гидру и смотришь...
     
  6. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    galenkane,

    Обработай исключение без них.
     
  7. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
    как например?

    Код (Text):
    1.  
    2.  
    3.     __try {
    4.    
    5.     }
    6.     __except (EXCEPTION_EXECUTE_HANDLER) {
    7.         return TRUE;
    8.     }
    9.  
    10.     return FALSE;
    11.  
    12. }
    13.  
     
  8. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    Как раз приведённый Вами код и затребует (неявно) вышеперечисленные APIшки, т.к. эти самые try и except - лишь операторы языка С/С++, которые в свою очередь реализованы в CRT и обращаются к этим API для частичного "разворота" хода выполнения программы в обратную сторону с целью восстановления стека до состояния, предшествующего исключительной ситуации (stack unwinding - раскрутка стека).
    Можно конечно и без этих апишек обойтись, обеспечив раскрутку вручную (это не такой уж и простой процесс). Можете для интереса взглянуть в исходники CRT, они включены в состав VS, или libunwind из gcc или llvm.
     
    q2e74 нравится это.
  9. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    galenkane,

    > как например?

    Это ты скажи, твой ведь вопрос.

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

    Исключения - это обычный системный механизм. Разберись как оно работает.