Если я пересоберу, используя те же источники, будут ли EXE-файлы иметь одинаковые смещения? - PullRequest
0 голосов
/ 01 марта 2012

Я получаю отчеты о сбоях от пользователей с некоторой информацией доктора Ватсона, включая EIP. Я хочу начать отладку, затем установить EIP и посмотреть, к какой строке это приведет меня. У меня также включена информация о линии в сборках выпуска.

У меня есть метка в управлении исходным кодом, чтобы я мог извлечь источники, которые я использовал для его создания, но я не знаю, будет ли компоновщик создавать EXE с такими же смещениями, иначе EIP не будет полезен.

1 Ответ

0 голосов
/ 01 марта 2012

Нет гарантии, что смещения будут одинаковыми, если только вы не сможете убедиться, что все используемые библиотеки, весь исходный код и компоновщик не изменились с тех пор, как вы проверили код в системе контроля версий.Вот почему многие компании действительно пойдут на многое, чтобы держать исполняемые файлы под управлением конфигурацией.

Исходя из опыта, если смещения не совпадают, то это становится очень быстрым, поэтому вы можете хотя бы проверить, а если что-то не имеет смысла, игнорировать EIP и другие смещения исполняемого адреса.

Если вы создаете файл карты и сохраняете его из версии, из которой поступил отчет о сбое, и файла карты из восстановленного источника, то вы можете провести некоторый сравнительный анализ (действительно функция за функцией), чтобы получить некоторую полезность изисполняемые адреса и смещения.

...