| Сейчас на форуме: padad42664, kris_sexy, site-pro, vasilevradislav (+6 невидимых) | 
|  | eXeL@B —› Крэки, обсуждения —› Как найти место где прога закрывается (exit code=1) | 
| Посл.ответ | Сообщение | 
|  | Создано: 09 июля 2007 23:30 · Личное сообщение · #1 | 
|  | Создано: 09 июля 2007 23:40 · Личное сообщение · #2 | 
|  | Создано: 09 июля 2007 23:49 · Личное сообщение · #3 | 
|  | Создано: 09 июля 2007 23:58 · Личное сообщение · #4 | 
|  | Создано: 10 июля 2007 02:56 · Личное сообщение · #5 | 
|  | Создано: 10 июля 2007 07:13 · Личное сообщение · #6 | 
|  | Создано: 10 июля 2007 10:43 · Личное сообщение · #7 | 
|  | Создано: 10 июля 2007 11:09 · Личное сообщение · #8 Ставишь бряк на ExitProcess, дебагаешь и когда вылетишь на этот бряк, смотришь в стеке (esp) адрес возврата. Если прога на C, как правило срабатывает. Если на Delphi, тоже работает, но там много фокусов с переходами, и лучше как правило посмотреть в DeDe у главной формы в .OnCreate или в . OnShow ссылку на Application.Terminate, Form.Close и т. п.  | 
|  | Создано: 31 июля 2007 12:55 · Личное сообщение · #9 Хорошо, когда есть много разных советов! PostQuitMessage и ExitProcess это конечно все правильно, но в тот единственный раз, когда я столкнулся с аналогичной ситуацией бряки на эти функции мне не сильно помогли. А точнее вообще не помогли ибо не срабатывали(самому с трудом вериться). Если кто знает - почему, поделитесь если не влом. А простая трассировка - вещь хорошая!!! Не кидайте в меня камни, но если прога падает сразу после запуска, то долго трассировать не придется, а если локализовывать через F8 (если речь об Ольге) - все же поняли о чем я? То все найдется быстро. Другое дело можно ли будет устранить такое нехорошее поведение, ибо если программа умирает сразу, то жить ей совсем не хочется  . Если вы считаете, что мой способ долгий слишком, то уверяю - обратная раскрутка стэка после бряка на закрывающие функции тоже дело довольно продолжительное!  | 
|  | Создано: 01 августа 2007 02:22 · Личное сообщение · #10 | 
|  | Создано: 01 августа 2007 03:10 · Поправил: sotona · Личное сообщение · #11 asmonavt пишет: А точнее вообще не помогли ибо не срабатывали(самому с трудом вериться). Если кто знает - почему, поделитесь если не влом. посмотри мой пост в этой теме. второй абзац. программе не обязательно вызывать ExitProcess. Вот к примеру: 
большинство компиляторов(а возможно даже все) сгенерируют код без вызова ExitProcess. здесь произойдет обычное mov eax, 0 и ret.  | 
|  | Создано: 01 августа 2007 03:30 · Личное сообщение · #12 HavocTracer Дал бы уже прогу давно, а то щас всем форумом дружно гадать будем как там у тебя прога закрывается. Есть вероятность, что она закрывается не по ExitProces, а по ExitThread, если мультипоточности нет. Да и если прога не вызывает никаких функций выхода из процесса, то после последнего RET'а она перейдет на заглушку, адрес которой на верхушке стека в момент запуска. А в заглушке как раз push eax
----- Уважайте других и пишите грамотно.  | 
|  | Создано: 01 августа 2007 05:22 · Личное сообщение · #13 | 
|  | Создано: 01 августа 2007 08:58 · Личное сообщение · #14 | 
|  | eXeL@B —› Крэки, обсуждения —› Как найти место где прога закрывается (exit code=1) | 










 Для печати
 Для печати