[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