eXeL@B —› Программирование —› Процесс загрузки процесса в адресное пространство |
Посл.ответ | Сообщение |
|
Создано: 28 марта 2012 21:51 · Личное сообщение · #1 Вечер добрый всем форумчанам! Может ли кто-то рассказать (или, ткнуть ссылку) как именно происходит процесс расположения сегментов исполняемого файла в виртуальной памяти в процессе загрузки? Может ли один и тот же сегмент в разных стартах загружен по другому виртуальному адресу? По ТОС помню, что для некоторых старых систем производилась "настройка адресов" перед стартом процесса, но мне казалось что это уже не нужно в современных архитектурах. Другими словами: есть исполняемый файл. Всегда ли он будет одинаково загружен в адресное пространство? Т.е. будет ли располагаться код всегда по тем же адресам? Предыстория: есть крэш (без корки). Известен адрес где рухнуло, есть бинарник. И GDB и IDA открывают его одинаково, но то, что находится по тому адресу в сочетании со значениями регистров - мягко говоря невозможно. Плюс, это не сочетается с выводом dumper-a - там указано обращение к вполне конкретной инлайн функции. Система QNX, но вопрос заинтересовал и "в общем". Кто что знает? Был бы очень благодарен. |
|
Создано: 28 марта 2012 22:20 · Личное сообщение · #2 |
|
Создано: 28 марта 2012 23:27 · Личное сообщение · #3 |
eXeL@B —› Программирование —› Процесс загрузки процесса в адресное пространство |