Сейчас на форуме: 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) |