ctracewindows-subsystem-for-linuxaddr2line

addr2line - fails on basic example


#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("%p\n", func);
    printf("%p\n", 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;
}

Build commands:

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

QUESTION
What am I doing wrong?


Solution

  • After I added -no-pie to my compile command, it worked.