
Мне нужна аналогичная информация об исходном коде для библиотечных функций, включенных в код. Например, когда я использую в программе «pthread_create», objdump создает только ассемблерный код для функции pthread_create. Он не смешивает информацию об исходном коде. Как мне это включить? Нужно ли мне переделывать компилятор gcc? Какие флаги мне нужны?
Пример исходного кода, который я пытаюсь сделать:
Код: Выделить всё
#include
#include
#define MAX 16
#define MAX_THREAD 4
int sum[MAX_THREAD] = { 0 };
void sum_array(int i)
{
sum[i]= i;
}
int main()
{
pthread_t threads[MAX_THREAD];
// Creating 4 threads
for (int i = 0; i < MAX_THREAD; i++)
{
pthread_create(&threads[i], NULL, sum_array, i);
}
for (int i = 0; i < MAX_THREAD; i++)
{
pthread_join(threads[i], NULL);
}
return 0;
}
gcc -static -g pthread.c -o pthread_musl_debuginfo
objdump -x --source --full-contents -D -S pthread_musl_debuginfo >
pthread_musl_debuginfo_objdump
Подробнее здесь: https://stackoverflow.com/questions/787 ... assembly-o