Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C++ C Linux GCC
I want to get function's call stack of the programm with gcc option -finstrument-functions.
 
Typical code
    void __cyg_profile_func_enter (void *, void *) __attribute__((no_instrument_function));
    void __cyg_profile_func_exit (void *, void *) __attribute__((no_instrument_function));
    int depth = -1;
    
    void __cyg_profile_func_enter (void *func,  void *caller)
    {    }
    
    void __cyg_profile_func_exit (void *func, void *caller)
    {    }
    
    int main()
    {
    printf("Hello world");
    return 0
    }
 
Compile it with gcc -finstrument-functions test.c
 
run ./a.out, and all ok.
 
But when I did it with g++ , I got undefined reference to __cyg_profile_func_enter function. I read that it happens because _cyg functions is part of C code and if I want to use them in C++ I should use extern "C", so there is final code.
 
    extern "C"{
    void __cyg_profile_func_enter (void *, void *) __attribute__((no_instrument_function));
    void __cyg_profile_func_exit (void *, void *) __attribute__((no_instrument_function));
    int depth = -1;
    
    void __cyg_profile_func_enter (void *func,  void *caller)
    {    }
    
    void __cyg_profile_func_exit (void *func, void *caller)
    {    }
    }
    int main()
    {
    printf("Hello world");
    return 0
    }
It compiles with g++ -finstrument-functions test.c, then try to execute it but got Core dumped error message. I trace dump with gdb and there was Segmentation fault in __cyg_profile_func_enter().
 
GCC version is 2.95.4. I also tested it on 4.4.3 and all Ok. So are there any posibilities to walk around this problem using 2.95.4 gcc?
Posted 21-Sep-12 0:04am

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Maciej Los 589
1 OriginalGriff 419
2 CPallini 205
3 RyanDev 175
4 Sergey Alexandrovich Kryukov 170
0 OriginalGriff 5,649
1 Sergey Alexandrovich Kryukov 4,783
2 Peter Leow 2,954
3 Maciej Los 2,689
4 DamithSL 2,465


Advertise | Privacy | Mobile
Web03 | 2.8.140718.1 | Last Updated 21 Sep 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid