URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7630
[ Назад ]

Исходное сообщение
"Замена функций в .o файле при линковке"

Отправлено ssnet , 08-Окт-08 13:25 
void SS_test2()
{
  printf("%s","mod 1 test2 \n");
}

void SS_test1()
{
  printf("%s","mod 1 test1 \n");
  SS_test2();
}

Есть два .o файла (test1.o и test2.o). Файл test1.o получается из сишного файла, кусок которого приведён выше.  И в том и в том есть функция SS_test2(). Как в test1.o  поменять название функции (для SS_test1 работает objcopy) и слинковать, чтоб получился исполняемый файл в котором функция SS_test2 запускалась бы из test2.o. Идея в том есть .о файл. Для тестирования надо заменить SS_test2() своей функцией. Можно конечно править а асме, но objdump -d дает инфу не пригодную для повторной автоматической компиляции. може есть какой-то "правильный" дизассемблер для моей задачи? Все статическое... все должно работать автоматом из скрипта.
Спасибо за потраченное на меня время :)


Содержание

Сообщения в этом обсуждении
"Замена функций в .o файле при линковке"
Отправлено NuINu , 08-Окт-08 15:17 
>[оверквотинг удален]
>{
>  printf("%s","mod 1 test2 \n");
>}
>
>void SS_test1()
>{
>  printf("%s","mod 1 test1 \n");
>  SS_test2();
>}
>

Разбейте этот файл на два, и вынесите из него повторно встречающиеся функции, потом при сборке собирайте экзешникИ. рабочий и тестовый,из двух различных наборов. у которых есть один общий test1.o


"Замена функций в .o файле при линковке"
Отправлено ssnet , 08-Окт-08 15:45 

>Разбейте этот файл на два, и вынесите из него повторно встречающиеся функции,
>потом при сборке собирайте экзешникИ. рабочий и тестовый,из двух различных наборов.
>у которых есть один общий test1.o

Нельзя так сделать ...  test1.o как бы сторонний файл.  


"Замена функций в .o файле при линковке"
Отправлено horsh , 09-Окт-08 15:30 
#pragma weak
это не то что вы ищите?

"Замена функций в .o файле при линковке"
Отправлено ssnet , 09-Окт-08 16:41 
#pragma weak Не совсем то что надо (test1.o менять очень не желательно). но большое спасибо, проверю.