2012-03-01 1 views
0

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

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

ответ

0

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

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

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

+0

Ух, я забыл, что исполняемый файл, который мы отправляем, также имеет цифровую подпись. Я тестировал exe, и он сильно изменился - размер не только увеличился, но и многие вещи были перемещены. – sashoalm

Смежные вопросы