#eclipse #eclipse-cdt #clang-format #autoformatting #format-conversion
#eclipse #eclipse-cdt #clang-формат #автоформатирование #форматирование-преобразование
Вопрос:
Предположим, я «криминалистически» изучаю объектный файл, который кто-то другой скомпилировал. У меня нет исходного кода, и я также не могу полагаться на символы отладки. Тем не менее, я могу использовать:
objdump -C -t my_object.o
| sed -r '/\*UND\*/!d; s/000 s *UND*s 000 //;'
| sort
чтобы получить внешние символы, которые он использует.
Но что, если то, что мне нужно, — это количество использований каждого из этих символов? Есть ли способ получить это, скажем, без сложного разбора дизассемблированного кода?
Примечания:
- Система GNU (например, Linux)
- Предположим, что основные инструменты, используемые при разработке программного обеспечения на C , установлены.
Ответ №1:
Для функций вы можете посмотреть количество перемещений, например:
// test.cc:
void foo();
int main() {
foo();
foo();
}
$ c -c test.cc
$ objdump -r test.o | grep foo
0000000000000005 R_X86_64_PC32 _Z3foov-0x0000000000000004
000000000000000a R_X86_64_PC32 _Z3foov-0x0000000000000004
Здесь у нас есть два перемещения, каждое из которых соответствует одному вызову функции.
Комментарии:
1. А как насчет переменных? Или другие символы?
2. Ссылки на глобальные переменные также должны быть в перемещениях.