Сейчас на форуме: _MBK_ (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Потоки ввода/вывода консольного приложения и Software breakpoint exception в IDA PRO |
Посл.ответ | Сообщение |
|
Создано: 10 января 2011 01:51 · Поправил: laMer13 · Личное сообщение · #1 Пишу launcher для HLDS (выделенный сервер Win32 игры Half-Life) . Основная прога написана на C# + DLL для системных хуков на С++. Запускаю сервер в консольном режиме и слежу/управляю его состоянием через перенаправленные потоки ввода/вывода консоли HLDS. Запускаю HLDS и перенаправляю его IO потоки через класс Process из .NET FrameWork (ланчер написан на C#). Поток вывода прекрасно перенаправился. Поток ввода перенаправляется и работает на многих консольных приложениях (на всех, что я пробовал, например, cmd), но на hlds не работает. Перенаправляется в HLDS всё нормально, без ошибок, но консольное окно никакой ввод не получает. Более того, буфер перенаправленного потока ввода hlds переполняется. С чем это может быть связано? Может быть, кто-то сталкивался? Что такого может делать HLDS, что у меня теряется возможность перенаправить правильно поток ввода? Может ли быть такое, что через какое-то время после старта hlds подменяет поток ввода, а я отправляю управляющий ввод в старый поток? Или может у hlds есть ещё какие-то способы что-нибудь намудрить? Я попробовал вводить через InputEvent и это работает, но это неудобно, тк консольное окно при этом необходимо активизировать (делать foreground)... Вряд ли это что-то даст, но могу привести код отправки символов в перенаправленный поток и код перенаправления потоков. Решил я выяснить причину того, почему у меня проблемы с перенаправлением потока ввода для hlds. Поставил IDA на свою Windows7 и решил пройтись по шагам по HLDS. Определить, что же он там намудрил... Получаю ошибку во время начала отладки: Software breakpoint exception, а дальше она мне акцес волатионы на 00000 показывает в idag.exe. Пробовал другие версии качать и устанавливать – не помогает. Попытка запуска отладчика из под администратора тоже не к чему не приводит. Пробовал Олечку (OllyDbg) – она заработала, но все, же Идой это делать много удобнее и привычнее. С чем может быть связана эта ошибка у Иды? Может быть, кто-то сталкивался? ![]() |
|
Создано: 10 января 2011 02:19 · Личное сообщение · #2 Ида дизассемблер, а не отладчик. Та часть что дебажит кривая. И не правда что олли менее удобна. ![]() |
|
Создано: 10 января 2011 03:37 · Личное сообщение · #3 |
|
Создано: 10 января 2011 11:30 · Личное сообщение · #4 laMer13 пишет: Ида аппаратные точки останова не поддерживает? Поддерживает. Если ставишь на данных, то сразу аппаратная, если на код, то в аппаратную можно превратить через Debug->Open Subviews->Open breakopints, потом в окне курсор на соответствующую точку и Ctrl+E (Edit) и в окне галку Hardware breakpoint ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 10 января 2011 19:59 · Личное сообщение · #5 |
|
Создано: 10 января 2011 21:08 · Поправил: laMer13 · Личное сообщение · #6 |
|
Создано: 10 января 2011 21:47 · Личное сообщение · #7 |
|
Создано: 11 января 2011 02:01 · Поправил: laMer13 · Личное сообщение · #8 Фраза из http://exelab.ru/f/action=vthread&forum=1&topic=12507#6: Аттачу настройки десктопа дизасма и дебаггера для IDA 5.2 под разрешения 1280*1024, 1280*800, 1280*768 -- некоторые говорят что помогло от вылета IDA при старте отладчика. 1)Это решение моей проблемы? Нужно выставить такое разрешение экрана? Пока Ида не работает - отлаживаюсь в Оле. Извиняюсь, за нубские вопросы. Это мой первый опыт отладки в дебагерах. И так, про Олю: 3)Как перейти по адресу? ПКМ/Go to - тут адрес указать нельзя. 4)В окне CPU - правая нижняя часть окна - это что за окно? 5)Почему странно распознаёт параметры? Code:
Оля мне уже начинает нравится. ![]() {Добавлено 11.01.2011 в 02:45:} Ида начала отлаживать. Поставил фришную 5.0. Приходится ставить аппаратные брекпоинты, тк софтварные что-то не работают... И в любом случае выдаётся ошибка "Software breakpoint exception" и глючит интерфейс программы, но акссес волатионов с падением иды уже нет. ![]() Оля может и менее функциональная (с точки зрения анализа), но покрайней мере не разу не глюкнула. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Потоки ввода/вывода консольного приложения и Software breakpoint exception в IDA PRO |