Tag: 调试符号

有没有办法在运行时访问调试符号?

这是一些示例代码,用于了解我想要的内容。 int regular_function(void) { int x,y,z; /** do some stuff **/ my_api_call(); return x; } … void my_api_call(void) { char* caller = get_caller_file(); int line = get_caller_line(); printf(“I was called from %s:%d\n”, caller, line); } 有没有办法实现get_caller_file()和get_caller_line() ? 我已经看到/使用#define ing my_api_call这样的技巧作为函数调用传入__FILE__和__LINE__宏。 我想知道是否有办法在运行时而不是编译时访问该信息(假设它存在)? 像Valgrind这样的东西是不是必须做这样的事情才能获得它返回的信息?