[CRIU] Re: [PATCH 04/13] make: Generate offsets from linked files
only
Cyrill Gorcunov
gorcunov at openvz.org
Wed Apr 18 07:03:17 EDT 2012
On Wed, Apr 18, 2012 at 02:42:24PM +0400, Pavel Emelyanov wrote:
> >
> > .bin.o will also have Elf headers, thus to find offsets of functions in object
> > file we will need to parse Elf headers itself (since `nm "symbol" x.o' will
> > show us virtual address but not real offset in object file).
>
> Брр... Давай два списка: 1. зачем нужен xxx.bin файл 2. зачем нужен xxx.bin.o файл
>
1) зачем нужен xxx.bin файл
binary target заставляет ld приложить релокации и выбросить
все elf заголовки, в итоге у нас получается просто бинарный
кусок, пригодный для конвертирования в поток байтов, который
мы задаем как static char parasite_blob[] (и так же для
ресторера).
Однако, binary target невозможно прасить, и из него невозмлжно
узнать по какому смещению сидят функции и символы которые нам нужны.
Чтоб найти смещения мы юзаем xxx.bin.o
2) xxx.bin.o
Именно его мы посылаем в
nm $OBJNAME | grep "__export_" | tr . _ | awk "$AWK_CMD"
и он нам дает смещения для функций и символов внутри binary target.
---
Просто то что было раньше -- оно не совсем корректно сделано было
(т.е. до поры до времени оно работало бы, но когда-нибудь сломается,
потому-то мы не контролировали секции в сгенерированном .o файле).
Cyrill
More information about the CRIU
mailing list