添加传递给gcc?

LB4*_*B40 8 c compiler-construction gcc

有没有人给gcc添加传球?或者不是真的通过,但添加一个选项来做一些讨厌的事情... :-) ...

在从另一个函数返回之前调用函数仍然有同样的问题...所以我想通过在gcc中实现一些东西来调查它...

干杯.

编辑:向编译器添加传递意味着重新访问树以执行某些优化或某些分析.我想模拟__cyg_profile_func_exit的行为,但仅限于某些函数,并且能够访问原始返回值.

所以我将尝试增强我的问题.我想模仿真正基本的AOSD行为.AOSD或面向方面的编程可以增加横切关注点(调试是一个跨领域的问题).

int main(int argc, char ** argv) {
  return foo(argc);
}

int foo(int arg_num) { 
   int result = arg_num > 3 ? arg_num : 42;
   return result;
}

int dbg(int returned) {
   printf("Return %d", returned);
}
Run Code Online (Sandbox Code Playgroud)

我想能够说,我想在执行foo函数后触发dbg函数.问题是如何告诉编译器修改控制流并执行dbg.应该在return和foo(argc)之间执行dbg ...

这与__cyg_profile_function_exit非常相似,但仅在某些情况下(__cyg_profile_function_exit中的问题是您无法轻易查看和修改返回的值).

Lau*_*nis 4

如果您仍然对添加 GCC 通行证感兴趣,您可以开始阅读 GCC Wiki 相关材料: