MOTR logo
    • Категории
    • Последние
    • Популярные
    • Метки
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Ruro, breakpoint

    Запланировано Прикреплена Закрыта Перенесена Ошибки
    21 Сообщения 12 Posters 2.5k Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • Anubis the GodA Не в сети
      Anubis the God
      отредактировано

      Предыдущую тему закрыли, проигнорировав мои сообщения. Переношу сюда.

      Имя вашего персонажа: не зависит от персонажа (ошибка при выборе любого аккаунта, до выбора персонажа дело не доходит). Например, Anubis the God.
      Дату и время обнаружения ошибки 21.05.2015
      Описание самой ошибки: остановка исполнения ruro.exe по точке останова (до входа в графический режим).
      Причины почему это следует считать ошибкой и какой должна быть правильная работа (для тем с ошибками в скиллах, механике и т.п.): очевидно.
      Если есть скриншоты иллюстрирующие ошибку, их можно приложить к теме: нет (если надо, могу сделать, но это обычное текстовое окошко типа MessageBox).

      Описание ошибки:

      1. Обновление завершилось почти нормально. vcredist пришлось установить вручную (апдейтер не запустил его сам).
      2. При запуске выдаётся информативное окошко:
        Breakpoint: Could not get thread context, error 5.
      3. Далее стандартное сообщение ragexea.exe не работает, отладка/закрыть.

      ОС: Vista Ultimate (последние обновления) х64.

      Что пробовал:

      1. Антивирус пробовал отключать - не влияет.
      2. От администратора пробовал запускать - тоже не влияет.
      3. Собрать клиент из iro sak. Ошибка та же.
      4. Попробовал клиент из первой ссылки в теме скачивания клиентов (motr150521). Ошибка та же.
      5. Попробовал скачать клиент от Лейзи. Ошибка та же.
      6. Перепробовал практически все режимы совместимости в MS Application Compatibility toolkit.
      7. В отладчике ruro смотрится криво (сообщается об испорченной таблице импорта и кривом сегменте кода). Могу предоставить стек-трейс до момента возникновения ошибки. "Перешагнуть" ошибку не вышло (правда, не особо долго я с этим возился; наверно обходить ошибку надо гораздо раньше, чем я это делал).
      8. vcredist пробовал как нативный (64бит), так и 32-битный (и по отдельности, и вместе).

      Иногда ruro (непонятно в каких случаях, но явно не всегда) пишет в свой лог многократно вот это:
      Код:
      2015.05.22 02:07:28 Unhandled access violation
      2015.05.22 02:07:28 Exception code: c0000005
      Exception address: 65053E27

      2015.05.22 02:07:28 Stack dump
      Return address ff34841

      Return address 0

      Может кто чего посоветует? Не знаю чего ещё попробовать. На ум только предпоследнее средство приходит - разбор дизассемблерного текста... но неохото. :%)

      1 ответ Последний ответ Ответить Цитировать 0
      • Anubis the GodA Не в сети
        Anubis the God
        отредактировано

        Раз уж никто ничего путного так и не ответил за неделю, попробую дополнить топик.

        Стек руро на момент выдачи окошка (вдруг поможет):
        [code:yrpu4ngy] ntdll.dll!__RtlUserThreadStart@8() + 0x1b байт
        ntdll.dll!___RtlUserThreadStart@8() + 0x23 байт
        kernel32.dll!@BaseThreadInitThunk@12() + 0xe байт
        ruro.exe!00c11e8e()
        ruro.exe!00c123d6()
        ruro.exe!00c0eedb()
        ruro.exe!00c0abae()
        ruro.exe!00c0b89a()
        user32.dll!_MessageBoxW@16() + 0x18 байт
        ... внутренняя кухня винды ...[/code:yrpu4ngy]
        У ruro2.exe стек другой:
        [code:yrpu4ngy]
        ntdll.dll!__RtlUserThreadStart@8() + 0x1b байт
        ntdll.dll!___RtlUserThreadStart@8() + 0x23 байт
        kernel32.dll!@BaseThreadInitThunk@12() + 0xe байт
        ruro2.exe!00ad9f4b()
        ruro2.exe!00ada642()
        001bfcf4()
        kernel32.dll!_WaitForDebugEvent@8() + 0x64 байт
        ntdll.dll!_DbgUiWaitStateChange@8() + 0x1e байт
        ntdll.dll!_ZwWaitForDebugEvent@16() + 0x12 байт

        ruro2.exe!00ad125d()
        user32.dll!_MessageBoxW@16() + 0x18 байт
        ...[/code:yrpu4ngy]

        Может быть проблема в этом:
        <!-- m --><a class="postlink" href="https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=RU-RU&k=k(%22WINBASE%2fGETTHREADCONTEXT%22">https://msdn.microsoft.com/query/dev10. ... CONTEXT%22</a><!-- m -->);k(GETTHREADCONTEXT);k(DevLang-%22C%2B%2B%22);k(TargetOS-WINDOWS)&rd=true
        <!-- m --><a class="postlink" href="https://msdn.microsoft.com/en-us/library/ms681665(v=vs.85">https://msdn.microsoft.com/en-us/librar ... 65(v=vs.85</a><!-- m -->).aspx

        А именно:

        1. Забыли указать доступ THREAD_QUERY_INFORMATION или THREAD_GET_CONTEXT при открытии процесса?
        2. Забыли вызвать SuspendThread перед GetThreadContext?
        3. Кстати, айс ругается что руро.ехе меняет значения отладочных регистров. Менять отладочные регистры позволительно только отладчикам.
        4. Адрес, передаваймый GetThreadContext должен быть выровнен на границу 64 бит.

        PS: При запросе информации о файлах/каталогах нужно выделять буфер >=MAX_PATH (256 байт), а не 5-6 байт с последующим перевыделением (не ошибка, но всё же здорово тормозит, когда каждый запрос к системе дублируется по нескольку раз).

        1 ответ Последний ответ Ответить Цитировать 0
        • Anubis the GodA Не в сети
          Anubis the God
          отредактировано

          Дальнейшие раскопки в ruro2.exe. Нашёл цикл отладки в ruro2 (адрес AD03B6). Отлаживая этот отладчик обратил внимание, что после выдачи окошка успевает произойти ещё несколько событий, связанных с ragexea, вот они (pid и tid опускаю - они разные при каждом запуске):

          1. EXCEPTION_DEBUG_EVENT:
            code=C0000096 (PRIVILEGED_INSTRUCTION_BLOCKED)
            flags=0
            exception record* = NULL
            ExceptionAddr=96BE08
            NumberPars=0
            First-time exception
            2)OUTPUT_DEBUG_STRING
            str=17F41C, len=69, type=ANSI STING
            3)OUTPUT_DEBUG_STRING
            str=17F417, len=7F, type=ANSI STING
            4)OUTPUT_DEBUG_STRING
            str=17F404, len=52, type=ANSI STING
            5)OUTPUT_DEBUG_STRING
            str=17F3F8, len=63, type=ANSI STING
            6)OUTPUT_DEBUG_STRING
            str=17F420, len=33, type=ANSI STING
            7)OUTPUT_DEBUG_STRING
            str=17F424, len=29, type=ANSI STING
            8 ) EXCEPTION_DEBUG_EVENT:
            code=80000003 (BREAKPOINT)
            flags=0
            exception record* = NULL
            ExceptionAddr=77940004
            NumberPars=1 (par1=0)
            First-time exception

          Вот в последнем исключении всё интересное и происходит. ruro обрабатывает его, выполняет ContinueDebugEvent, после чего ragexea и падает.
          Последующие события неинтересны (выгрузка DLLок, завершение потоков, завершение процесса).

          В виду того, что ragexea пытается выдать отладочные сообщения, нужно бы в руро засунуть хотя бы их дамп, чтобы понять, что происходит. К сожалению, сам я их просмотреть не смог (конструкция "отладчик из-под отладчика" накладывает ограничения, а свой руро не хочется писать; хотя, со временем можно попробовать :x ...).

          1 ответ Последний ответ Ответить Цитировать 0
          • D Не в сети
            dark_rider
            отредактировано

            еще чуть чуть, и ты сделаешь всю работу за админа(

            1 ответ Последний ответ Ответить Цитировать 0
            • R Не в сети
              ruro Модераторы
              отредактировано

              Если ruro.exe пускается (корректно установлен vcredist), в сторону ruro2.exe можно не копать. Это статически слинкованный с рантаймом студии файл, для тех, кто не может установить vcredist, со всеми негативными последствиями.

              1 ответ Последний ответ Ответить Цитировать 0
              • MeliraM Не в сети
                Melira
                отредактировано

                Проблема все еще присутствует, человек уже написал как её возможно решить. Исправьте пожалуйста.

                1 ответ Последний ответ Ответить Цитировать 0
                • I Не в сети
                  IRISHA
                  отредактировано

                  Когда мы можем надеяться на решение проблемы? Уже второй месяц у него нет возможности зайти в игру! Просим администрацию поскорее помочь. Сделайте уже, чтобы все могли играть, вместо нововведений... Итак народа на сервере мало.

                  1 ответ Последний ответ Ответить Цитировать 0
                  • fidosemenF Не в сети
                    fidosemen
                    отредактировано

                    Понаставляют себе убогие ОС, а потом в игру не могут зайти.

                    1 ответ Последний ответ Ответить Цитировать 0
                    • Одинокий СтранникО Не в сети
                      Одинокий Странник
                      отредактировано

                      @fidosemen:
                      Понаставляют себе убогие ОС, а потом в игру не могут зайти.Плюс.
                      Хотя у меня и на висте никаких проблем с ро никогда не возникало.

                      1 ответ Последний ответ Ответить Цитировать 0
                      • Anubis the GodA Не в сети
                        Anubis the God
                        отредактировано

                        fidosemen, ты много ОС написал, прежде чем другие называть убогими?

                        Как-то странно требовать сменить ОС из-за одной игры. Вообще может отдельный комп под каждую игрушку посоветуете ставить?..

                        1 ответ Последний ответ Ответить Цитировать 0
                        • I Не в сети
                          IRISHA
                          отредактировано

                          Одинокий Странник, у тебя клиент Лейзика? если нет, мб зальешь куда-нибудь его, вдруг пойдет...

                          1 ответ Последний ответ Ответить Цитировать 0
                          • Одинокий СтранникО Не в сети
                            Одинокий Странник
                            отредактировано

                            Да, у меня клиент Лейзи.

                            1 ответ Последний ответ Ответить Цитировать 0
                            • Anubis the GodA Не в сети
                              Anubis the God
                              отредактировано

                              Ап.

                              Не пойму, как можно так долго фиксить ошибку, причина которой ясна и место которой явно известно?

                              1 ответ Последний ответ Ответить Цитировать 0
                              • I Не в сети
                                IRISHA
                                отредактировано

                                Люди, майская тема!!! Когда решат проблему?? Человек уже отчаялся расчитывать на помощь от сервера, играя на нем 10 лет... Имейте совесть.

                                1 ответ Последний ответ Ответить Цитировать 0
                                • Магистр МагииМ Не в сети
                                  Магистр Магии
                                  отредактировано

                                  Аналогичная хрень на ноуте с xp, на котором раньше играл. Нашли какие нибуть решения?

                                  1 ответ Последний ответ Ответить Цитировать 0
                                  • I Не в сети
                                    IRISHA
                                    отредактировано

                                    Не нашли!!! Человек не играет уже с мая... может уже что-то сделают?

                                    1 ответ Последний ответ Ответить Цитировать 0
                                    • Anubis the GodA Не в сети
                                      Anubis the God
                                      отредактировано

                                      Магистр Магии, какой процессор на ноуте? Есть большое подозрение, что ошибка зависит не от ОС (в ruro.exe криво парсится результат работы GetThreadContext для некоторых процессоров).

                                      Решение: сделайте ruro.exe open-source - исправим без проблем. 😄

                                      1 ответ Последний ответ Ответить Цитировать 0
                                      • EnisariE Не в сети
                                        Enisari
                                        отредактировано

                                        o1, помоги человеку ... или добей - чего он, уже как пол года, мучается-то?

                                        1 ответ Последний ответ Ответить Цитировать 0
                                        • M Не в сети
                                          motosava
                                          отредактировано

                                          Core i7 2600K Vista Enterprise SP2 x64 установлена для теста, подтверждаю, мотр не работает, другие сервера работают 😉 Ошибка из первого поста человека. Решения пока не нашел, установка разных вц редисок не спасает.

                                          1 ответ Последний ответ Ответить Цитировать 0
                                          • S Не в сети
                                            SonOfTroy
                                            отредактировано

                                            Та же ошибка, виста 64, играть не могу..

                                            1 ответ Последний ответ Ответить Цитировать 0
                                            • Первое сообщение
                                              Последнее сообщение