zoukankan      html  css  js  c++  java
  • Hook to function

    myFun.h
       1: #include <stdio.h>
       2:  
       3: void __cyg_profile_func_enter(void *this_fn, void *call_site)
       4:         __attribute__((no_instrument_function));
       5: void __cyg_profile_func_enter(void *this_fn, void *call_site) {
       6:     printf("Hello I am entering
    ");
       7: } /* __cyg_profile_func_enter */
       8: void __cyg_profile_func_exit(void *this_fn, void *call_site)
       9:         __attribute__((no_instrument_function));
      10: void __cyg_profile_func_exit(void *this_fn, void *call_site) {
      11:     printf("Hello, I am exitint
    ");
      12: } /* __cyg_profile_func_enter */
      13:  

         main.c

       1: #include <stdio.h>
       2: #include "myfun.h"
       3: void myStartupFun (void) __attribute__ ((constructor));
       4: void myCleanupFun (void) __attribute__ ((destructor));
       5: int foo() {
       6:     return 2;
       7: }
       8: int bar() {
       9:    return 1;
      10: }
      11: int main(int argc, char** argv) {
      12:     int i ,j;
      13:     i = foo();
      14:     j = bar();
      15:     printf("foo=%d bar=%d
    ", i, j);
      16:     return 0;
      17: }

    when you compile this file, please put the myFun.h in the same directory with main.c, and MUST with flag “-finstrument-functions”

  • 相关阅读:
    HTML
    HTML
    HTML
    HTML
    HTML
    HTML
    HTML
    TOMCAT-IDEA远程debug方法
    调整mysql数据库最大连接数
    win10开机时内存使用率达到99%以上
  • 原文地址:https://www.cnblogs.com/dorothychai/p/3278720.html
Copyright © 2011-2022 走看看