Пришел мне недавно запрос на рефанд, разумеется по самой дорогой лицензии.
Клиент утверждал, что пробовал бесплатную версию, все работало, а потом поставил коммерческую и она сразу грохнулась.
Причем пробовал на Windows 7 и Windows XP и результат один и тот же — program is not responding.
Само по себе это странно — в программе проверки на каждый чих стоят, длинных циклов нет.
Программа на Delphi, сторонних компонентов практически нет, а те что есть используются и в бесплатной версии.
Включил логгирование в файл — говорит файл не создается.
Собрал с madexcept — снова Windows сообщает что программа перестала отвечать сразу на старте.
Собрал с консольным окном, которое вызывается через AllocConsole в начале dpr файла — ничего не изменилось.
Собственно говоря я уже сомневаюсь, что ошибка вообще есть,
но может быть я что-то упустил?
Здравствуйте, icezone, Вы писали:
I>Пришел мне недавно запрос на рефанд, разумеется по самой дорогой лицензии. I>Клиент утверждал, что пробовал бесплатную версию, все работало, а потом поставил коммерческую и она сразу грохнулась. I>Причем пробовал на Windows 7 и Windows XP и результат один и тот же — program is not responding. I>Само по себе это странно — в программе проверки на каждый чих стоят, длинных циклов нет. I>Программа на Delphi, сторонних компонентов практически нет, а те что есть используются и в бесплатной версии.
I>Включил логгирование в файл — говорит файл не создается. I>Собрал с madexcept — снова Windows сообщает что программа перестала отвечать сразу на старте. I>Собрал с консольным окном, которое вызывается через AllocConsole в начале dpr файла — ничего не изменилось.
I>Собственно говоря я уже сомневаюсь, что ошибка вообще есть, I>но может быть я что-то упустил?
У нас обратная ситуация была, перестал запускаться екзешник. У нас не запускается, но клиенты покупают и используют судя по логу.
Пересобрали на XE5 — работает у всех.
Так и не поняли что это было — продукт был сделан на старой Delphi 7
Здравствуйте, icezone, Вы писали:
I>Собственно говоря я уже сомневаюсь, что ошибка вообще есть, I>но может быть я что-то упустил?
При установке программы файл может моментально инфицироваться вирусом, код вируса наверняка запускается раньше приложения, и возможно он сбоит.
Тогда симптомы будут такие какие есть.
Ставь на файл цифровую подпись и проси пользователя, перед запуском файла, эту подпись проверить. Если валидна, то мое предположение не верно.
Или пусть пришлет этот exe после запуска, чтобы ты сам проверил.
I>Пришел мне недавно запрос на рефанд, разумеется по самой дорогой лицензии. I>Клиент утверждал, что пробовал бесплатную версию, все работало, а потом поставил коммерческую и она сразу грохнулась. I>Причем пробовал на Windows 7 и Windows XP и результат один и тот же — program is not responding. I>Само по себе это странно — в программе проверки на каждый чих стоят, длинных циклов нет. I>Программа на Delphi, сторонних компонентов практически нет, а те что есть используются и в бесплатной версии.
I>Включил логгирование в файл — говорит файл не создается. I>Собрал с madexcept — снова Windows сообщает что программа перестала отвечать сразу на старте. I>Собрал с консольным окном, которое вызывается через AllocConsole в начале dpr файла — ничего не изменилось.
у тебя программа не отсылает отчеты о падениях со стеком вызовов?
надо отсылать.
Здравствуйте, vladimir.romin, Вы писали:
VR>При установке программы файл может моментально инфицироваться вирусом, код вируса наверняка запускается раньше приложения, и возможно он сбоит. VR>Тогда симптомы будут такие какие есть.
Интересный вариант. В таком случае у него куча машин должна быть заражена и с другими программами должны быть проблемы.
Здравствуйте, Sharowarsheg, Вы писали:
S>У меня в таких случаях всегда оказывался баг. S>Попроси его TeamViewer или что-то такое поставить, и сам посмотри, что там происходит.
в моем понимании, если в dpr-файле первой командой вызвать AllocConsole,
то консоль должна появиться в любом случае, инициализация и создание форм идет позже
Здравствуйте, icezone, Вы писали:
I>но может быть я что-то упустил?
Скорее всего что-то внедряется в процесс сразу после запуска. Это может быть вирус, антивирус либо же утилитарная софтина которая вешает кривой хук или делает принудительный injection своего модуля во все процессы, ну а в модуле баг.
Здравствуйте, Aquilaware, Вы писали:
A>Скорее всего что-то внедряется в процесс сразу после запуска. Это может быть вирус, антивирус либо же утилитарная софтина которая вешает кривой хук или делает принудительный injection своего модуля во все процессы, ну а в модуле баг.
Как определить? Дело в том, что у меня нет доступа к машине, а все методы отладки молчат.
I>Как определить? Дело в том, что у меня нет доступа к машине, а все методы отладки молчат.
ну если совсем рефанд не хочется делать, то я бы начал с проверки гонит он в принципе или нет. для этого надо взять стопудово рабочую программу, не знаю, notepad.exe из винды или что-то другое, простое, известное, обозвать именем своей программы и попросить запустить. если "не запустится", ну значит дело плохо.
если запустится, то дело видимо в программе или в рантайме. у тебя, наверное, не одна программа? попроси скачать другую свою самую простую программу, написанную на том же дельфи. запустится она или нет? сделай простейшую программу на той же дельфе, собери аналогично и отправь — запустится или нет. если не запустится, а нотепад работал, значит дело в рантайме дельфи, возможно какие-то конфликты. если запустится, то дело уже в твоей программе.
если дело в рантайме, то надо отрубать антивирусы и смотреть какие длл-ки внедряются в процесс. это можно посмотреть process viewer-ом от sysinternals или в реестре найти список. если на этом этапе идей нет, то дешевле наверное будет сдаться
если дело не в рантайме и простая прога запускается, то тут я пас, это видимо уже какие-то дельфевые ньюансы.
ну и да, подпиши файл хоть чем-нибудь, посмотри как выглядят свойства подписанного файла у тебя, попроси у пользователя скриншот как у него это выглядит. это позволит отсечь варианты с вирусами.
Здравствуйте, icezone, Вы писали:
I>Клиент утверждал, что пробовал бесплатную версию, все работало, а потом поставил коммерческую и она сразу грохнулась.
Странно, что бесплатная версия устраивала, а при багах на платной клиент хочет рефанд, а не починнку падения
Странно, что в корпоративной сети нет антивируса.
Но по поведению похоже на антивирус/проактивную защиту. Как я понял, дело до старта кода твоего приложения не доходит? У тебя ключ как-то в ехе проверяется же? Обычно всякий такой секьюрный код пугает антивирусы и защитников. Сделай простую программу, которая ничего не делает, только проверяет код (надо подумать только, не опасно ли делать такую программу и отдавать потенциальному мошеннику?) — таким образом ты отделишь проблемы своего функционала от проблем платной версии.
Ещё можно попросить снять скрин с Process Explorer-а со списком dll-ек (ну или дамп), чтобы посмотреть, что там внедрилось...
Здравствуйте, ov, Вы писали:
ov>ну если совсем рефанд не хочется делать, то я бы начал с проверки гонит он в принципе или нет. для этого надо взять стопудово рабочую программу, не знаю, notepad.exe из винды или что-то другое, простое, известное, обозвать именем своей программы и попросить запустить. если "не запустится", ну значит дело плохо.
да, есть такая идея
ov>если запустится, то дело видимо в программе или в рантайме. у тебя, наверное, не одна программа? попроси скачать другую свою самую простую программу, написанную на том же дельфи. запустится она или нет? сделай простейшую программу на той же дельфе, собери аналогично и отправь — запустится или нет. если не запустится, а нотепад работал, значит дело в рантайме дельфи, возможно какие-то конфликты. если запустится, то дело уже в твоей программе.
бесплатная версия работает, в ней те же юниты подключены
ov>если дело в рантайме, то надо отрубать антивирусы и смотреть какие длл-ки внедряются в процесс. это можно посмотреть process viewer-ом от sysinternals или в реестре найти список. если на этом этапе идей нет, то дешевле наверное будет сдаться
антивирусов нет, на счет process viewer подумаю
если баг есть, то я заинтересован в его поимке
рефанд я и так готов сделать, чисто из благодарности
ov>если дело не в рантайме и простая прога запускается, то тут я пас, это видимо уже какие-то дельфевые ньюансы. ov>ну и да, подпиши файл хоть чем-нибудь, посмотри как выглядят свойства подписанного файла у тебя, попроси у пользователя скриншот как у него это выглядит. это позволит отсечь варианты с вирусами.
завтра обещал прислать с работы скриншот, но думаю, что никакого криминала не будет
я уже мозг себе сломал в поисках вариантов, все указывает на то, что программа не отвечает на системные сообщения
и судя по тормозам Windows программа жрет процессор в бесконечном цикле
у меня вся логика в отдельных потоках работает и не может на GUI повлиять, сами потоки тоже висят в ожидании пока кнопку не нажмешь
единственный вариант — winapi выдает кривое значение, но без ошибки
Здравствуйте, CEMb, Вы писали:
CEM>Странно, что бесплатная версия устраивала, а при багах на платной клиент хочет рефанд, а не починнку падения
бесплатная сильно урезана, платная достаточно дорогая
CEM>Странно, что в корпоративной сети нет антивируса.
это нормально, если система не имеет доступа извне
CEM>Но по поведению похоже на антивирус/проактивную защиту. Как я понял, дело до старта кода твоего приложения не доходит? У тебя ключ как-то в ехе проверяется же? Обычно всякий такой секьюрный код пугает антивирусы и защитников. Сделай простую программу, которая ничего не делает, только проверяет код (надо подумать только, не опасно ли делать такую программу и отдавать потенциальному мошеннику?) — таким образом ты отделишь проблемы своего функционала от проблем платной версии.
вот именно этот момент и не понятен — первая команда открывает консоль и пишет туда лог, консоль не появляется на экране.
либо выполнение программы вообще не начинается, либо окно не появляется из-за зацикливания при создании основного окна
защиту я вообще отключил в отладочной версии
CEM>Ещё можно попросить снять скрин с Process Explorer-а со списком dll-ек (ну или дамп), чтобы посмотреть, что там внедрилось...
Здравствуйте, icezone, Вы писали:
CEM>>Странно, что бесплатная версия устраивала, а при багах на платной клиент хочет рефанд, а не починнку падения
I>бесплатная сильно урезана, платная достаточно дорогая
А может сделать что-то среднее?
Т.е. возможно, ему хватало бесплатной, и он не хочет разбираться с проблемами за такие деньги?
Конкуренты есть, кстати? Это тоже может всё объяснить.
Ты у него не спрашивал почему именно рефанд, а не доработка?