#include <stdio.h>
void __cyg_profile_func_enter(void *func, void *caller) __attribute__((no_instrument_function));
void __cyg_profile_func_exit(void *this_fn, void *call_site) __attribute__((no_instrument_function));
void __cyg_profile_func_enter(void *func, void *caller)
{
printf("%pn", func);
printf("%pn", caller);
}
void __cyg_profile_func_exit(void *this_fn, void *call_site)
{
}
void my_function(int a, int b)
{
a = a * b;
}
void dummy_function()
{
int a = 10;
int b = 20;
my_function(a, b);
}
int main()
{
int x = 42;
int y = 73;
dummy_function();
my_function(x, y);
return 0;
}
构建命令:
gcc -x c boost_stacktrace.cpp -finstrument-functions -rdynamic -g -O0 -o boost_stacktrace.exe
./boost_stacktrace.exe | tee addrs.txt
0x55d97d38324c
0x7f0fa12b0d90
0x55d97d3831f4
0x55d97d383287
0x55d97d3831a9
0x55d97d383233
0x55d97d3831a9
0x55d97d383296
addr2line -e boost_stacktrace.exe -f -i -p < addrs.txt
?? ??:0
?? ??:0
?? ??:0
?? ??:0
?? ??:0
?? ??:0
?? ??:0
?? ??:0
我做错了什么?
在我将-no-pie
添加到我的编译命令后,它工作了。